疑问
假设此时有一个数组int arr[3]={1,2,3};
int *p=&arr[0];
为什么此时p++==&arr[1]呢?
测试结果
经过测试,我发现指针变量的加法不等同于正常的加法,而是与指针变量的数据类型有关。
例如指针变量是char *p,此时p++的结果就是在这个数加上1。而指针变量如果是int *类型的话,p++的结果就是在这个数上加上4。
思考
我认为:指针变量是为了表明一个数据的储存位置,目前的指针都是只指出数据所占空间的第一个内存单元,再根据数据类型进行查找。假设p++在int *类型也是只加上1的话,这个指针是完全没有意义的。所以指针变量根据指针数据类型来进行运算。
综上所述:指针变量不等同于正常的加减法,可以说是没有意义的(有其自己的规则)。



