C语言中的指针运算有如下几种形式。
(1)指针变量加/减一个整数
例如,p++,p–,p+i等。
C语言与C++语言规定,一个指针变量加/减一个整数是将该指针变量的原值(是一个地址)和它指向的变量所占用的内存单元字节数相加或相减,这样就保证了p+i指向p下面的第i个元素。
例如,p+i代表这样的地址计算:p+i*d,其中,d为p所指向的变量单元所占用的字节数。
(2)指针变量赋值
C语言与C++语言规定,可以将一个变量或一个函数的入口地址赋值给相应的指针变量。
例如(假设p是相应的指针):
p=&a;
p=max;(max为已经定义的函数)
(3)指针变量相减
如果两个指针变量指向同一个数组的元素,则两个指针变量之差是两个指针之间的元素个数。
注意,指针变量相加无实际意义。
(4)指针变量比较
如果两个指针变量指向同一个数组的元素,则可以进行比较。指向前面元素的指针变量小于指向后面元素的指针变量。