调试可以看出不论是声明类型的指针变量,他的字节大小都是8个字节(在32位平台上是4个字节,在64位平台是8个字节),在大小上,指针类型没有任何区别。
TIP:一个十六进制位==4个二进制位
原因:
假设1111是一个二进制位所能够表达的最大值,十进制表示就是15,而15就等于十六进制最大的表示字母f,所以为了能够让二进制位更加正确的表示十六进制位,直接最大限度让4个二进制位表示1个十六进制位!
第一个意义:
指针类型决定了指针解引用操作的权限有多大。
当指针类型为int*时,进行解引用操作,对应4个字节
而指针类型为char*时,只能访问第一个字节。
第二个意义:
可以看出在指针类型为int*时,+1地址就会增加4个字节,而指针类型为char时,只增加了一个字节。因此可以总结为
指针类型决定了指针走一步,能走多远(步长)
总结:
- 指针类型决定了指针解引用操作符的权限有多大。
- 指针类型决定了指针走一步,能走多远(步长)、
应用:
解析:指针类型是int,而数组类型正好也是int,所以p+i访问的就是每个数组元素的下标的地址,然后解引用就可以对数组里面的元素进行赋值。
根据需求,设置不同类型的指针,本题需要我们对数组元素进行赋值,此时就需要int类型的指针,如果对数组的每一个字节进行变动,就需要char*的指针。
标签:十六进制,字节,意义,int,二进制位,类型,指针 From: https://blog.51cto.com/u_15740457/6114975