目录
一、存放指针的变量的加减
如果指针变量a已指向数组中的一个元素,则a+1指向同一数组的下一个元素,a-1表示指向同一数组的上一个元素。注意:执行a+1时并不是将p的值(地址)简单的加一,而是加上一个数组元素所占的字节数。
即:
int 型指针+1 :地址+4
short型指针+1 :地址+2
char型指针+1 :地址+1
综上:
数据类型* a;
a + n == a中存放的地址 + n * sizeof(A的数据类型) ;
存放指针的变量能加也能减,但不管加减都要小心越界。
上面的写法等价于:
二、存放指针的变量的自增自减
- 存放指针的变量有两种: 数组变量、指针变量。
- 数组变量不能自增和自减,因为C语言规定它必须存放指向数组起始地址的指针,不能修改,但自增和自减会修改变量的值,所以数组变量不能自增和自减。
- 指针变量可以自增和自减,和 +1 / -1 没有区别。
三、两个指针相减
两个指针不可以相加,但可以相减,相减结果为在数组中的下标之差。
int a[] = { 1, 2, 3, 4, 5 }; cout << &a[3] - &a[0] << endl;
------------------------END-------------------------
才疏学浅,谬误难免,欢迎各位批评指正。