- 一般数据类型指针
- char ch[16]; char *p = ch; p++; //p++后,p指向ch[1];
- int num[8]; int *p = num;p++; //p++后,p指向num[1];
- 指向多维数组的指针
- char ch[3][16]; char (*p)[16] =ch; p++; //p++后,p指向ch[1][0];
- 总结: ++, --的跳转的单位是其指向的数据类型,如果指针指向一般数据类型,则++跳转到下一地址;如果指针指向多维数组的一行,++则跳转到下一行。
- 也就是说p++不再是数值上的加1,而是根据类型的大小对指针进行相应的操作。比如int占两个字节,那么指针(指向虚拟内存的地址)的数值应该+2。
- 所以当我们对指针+1,+2的时候,也是根据类型的大小对指针作相应的改变。