C语言指针--搬运

一:

 

 总结

两个不同类型的指针(地址)相同。
我们知道int*pa=&a;int有4个字节,而地址就是第一个字节地址编号,所以char*pc也存储了int a的第一个字节编号,所以两个地址相同

 

二:

 

 

 

 

 

 

我们可以清楚的看到
初始化int a=0x0012ff33;(0x表示16进制的数据)
int *pa=&a; *pa=1; : a=0x00000001;
char* pc=&a; *pc=1;: a=0x00 f f 1201;
*pc只能对int a一个字节解引用,访问一个字节。

总结:

指针的类型决定了,对指针解引用的时候有多大的权限(能操作几个字节)。比如:char*的指针解引用就只能访问一个字节,而int*的指针的解引用就能访问四个字节。

 

 

是按字节编址,一个字节对应一个编号,所以int *为int(4个字节)类型的指针,加减整数1,地址加减4 ; char *加减1,地址改变1

总结

指针类型决定了指针向前或向后一步移动的步长(距离)。

 

野指针

 

 

没有初始化的指针就是野指针(很危险的)

 

posted @ 2021-07-01 15:37  一个爱搬运的球  阅读(90)  评论(0)    收藏  举报