2.1.3 寻址和字节顺序
P29

注意一个数字不是8个bit,数字是以十六进制表示的,所以是4个bit.这里的地址单元的大小就是一个字节
P31

解释一下这个程序,可以想想为什么有图2-6的输出结果
我们知道:
- 一个变量有两个特征,这个变量的值和这个变量的地址
&x获得的是x的地址,是其在内存中的首字节的地址(比如上图大端中的0x100)- 同时注意到
&x也是变量,所以也有两个特征,它的值就是x的首字节的地址*(&x)表示解释指针&x所指向的地址以及其后面三个字节的值(一共解释四个字节,这是因为&x的类型是int *)*((byte_pointer)&x)表示解释指针&x所指向的地址这一个字节的值(一共解释一个字节,这是因为现在已经将&x的类型转化成了unsigned char *了)
- 注意
start是一个指针,所以start[i]等价于*(start+i)
有了上面的解释,不难知道为什么有图2-6的输出结果了

浙公网安备 33010602011771号