指针存放的是地址,对于地址而言,有效的算术运算有如下四种:
1⃣️同类型指针的赋值运算,如 int *p,*q; p = a[ ]; q = p;
2⃣️指针同整数之间的加法或减法运算,如 p += n,表示让p指向后面第n个元素。注意,n将根据p指针的类型进行缩放,如p是int型,则n要按4倍来计算。
3⃣️同一个数组之间不同指针的比较运算或减法运算,如p,q都是指向a[ ]中元素的指针,则p,q可以进行比较或减法运算,注意加法可能会超出数组的最大界限。
4⃣️可将指针赋值为0或将指针与0比较,指针和整数之间不能进行比较,但0是例外,c语言中 0永远不是有效的地址,故可用指针为0表示特殊情况。
除了这四种情况,其余指针运算都是非法的,如不同数组的指针进行加减、比较运算等。
除此之外,注意在指针运算时,可使用数组最后一个元素的下一个元素的地址。