指针的加法

站在设立者的角度上指针的加法有可能设立的三种意义:
1.指针加1,可以代表加1个字节
2.指针加1,可以代表加整个数组
3.指针加1,可以代表加1个单元格

仔细思考第二条,如果指针加1,代表着加一个数组,那么当你想用指针里面的某个值时,加法并没有意义。*
所以第二种方法明显不可取。*

回过头再思考第一条,在32位平台上指针占4个字节,如果
intp=arr[10];一个单元格占四个字节,指针加一代表加一个字节的话,如果实现p=10;p++;*p=20;printf("%d,%d\n",arr[0],arr[1]);指针初始在arr[0]上。将其置为10,指针加1,置为20,如果按照方法一,arr[0]=5130;arr[1]=0
要将10存入计算机中,必须以十六进制存入其中,即0000000a;要将20存入,则为00000014;
pc为小端故为低地址,小数据
在这里插入图片描述所以arr[0]=0000140a=5130;arr[1]=0;
所以如果这样设计的话只是指针加1,就变化如此之大,故不可取。
由图可知,加一个单元格相对来说是最简捷适用的。
指针可以加数字,指针可以减数字,指针可以减指针,在但是指针不可以加指针(类似于日期)

猜你喜欢

转载自blog.csdn.net/m0_43407388/article/details/87922410
今日推荐