指针是指向一个变量的地址。指针就是地址,地址就是内存单元的编号。指针变量的范围是内存的非零地址和最大地址。
指针变量的运算,自然就是地址的运算,以便从地址中存取其内容(数据)。具体如下:
指针变量加/减一个整数:如果p是指针变量,那么
p++,表示指针加1,即指向下一个地址。
同样,p--,表示指针减1,即指向上一个地址。
p+i,这里i是一个整数。即从当前地址,再向下面数i个内存单元的地址。
在C语言与C++语言中规定,一个指针变量加/减一个整数是将该指针变量的原值(一个地址)和它指向的变量所占用的内存单元字节数相加或相减。这样就保证了p+i指向p下面的第i个元素。
指针变量赋值:可以将一个变量或一个函数的入口地址赋值给相应的指针变量。
例如,假设p是指针变量,那么
p=&a;(a是一个整型变量,p是其存储地址)
p,q是两个指针变量,则可以有p=q;
指针变量相减:如果两个指针变量指向同一个数组的元素,则两个指针变量之差是两个指针之间的元素个数。(www.xing528.com)
注意:指针变量相加无实际意义。
指针变量比较:如果两个指针变量指向同一个类型数据的元素,则可以进行比较。指向前面元素的指针变量小于指向后面元素的指针变量。
指针变量的定义或声明。变量都是需要定义的,指针变量也需要定义,且要区别于其他变量的定义。例如,在C语言中
定义一个指针变量,表达为
int *p;
表示p是一个指向整型数的指针变量。
而一个整型变量的定义是
int q;
表示q是一个整型变量。
一般的编程语言中不含指针变量。而在C语言中,指针变量是非常重要的。因为C语言常常用于系统软件编程,用指针变量可以方便地直接指向特定的地址。这对于内存操作是十分方便的,也有利于编写与计算机地址相关的复杂程序。
针对高可靠性应用类的程序编程,尽可能不要用指针变量。指针会带来内存的安全问题,很多时候,在指针变量参与多次运算后,程序员搞不清指针是否指向内存外的地址,从而可能会导致软件崩溃。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。