指针算术运算

指针的p+1运算理论上有三种

1,加一个数组,error,无意义

2,加一个字节 ,error,但是很重要,重点探讨

3,加一个单元格,right

上图为我们对于指针p+1加一个字节的过程具体如下:

定义一个整形数组为1,2,3,字节数为4,定义一个指针保存arr首元算的地址,令*p=10,然后指针p+1,假设红色的100,101,102,103,104,105,108为每个数组元素的地址,放大4倍,10的十六进制是0000000a,低地址存放小数据,所以蓝框(即地址100~103中)中存放的为0a,00,00,00。2的十六进制为00000002,所以在黄框中为02,00,00,00.当我们认为加一个字节的时候,arr[0]向右移一个单元格,然后将*p赋值为20,20的十六进制为00000014,低地址存放小数据,所以红框(即101~104中)中存放的为14,00,00,00.所以arr[0]中的值的十六进制为0000140a,所以arr[0]的值为5130。黄框中为00,00,00,00.所以arr[1]的值为0.

猜你喜欢

转载自blog.csdn.net/wry_sunny_/article/details/79601875
今日推荐