我需要打印一个指针的地址。这是我的代码?
float arr[5] = {1.2 , 2.3 , 5 , 7.1 , 9.6};
float *ptrarr;
ptrarr = &arr[0];
printf("Address of ptrarr+2=%p,%p \n\n",ptrarr+2,&arr[2]);
Run Code Online (Sandbox Code Playgroud)
我知道指针地址有 8 个字节,但我的输出总是 16 个字节。这是输出
Address od ptarr+2=000000000061FDE8,000000000061FDE8
Run Code Online (Sandbox Code Playgroud)
有人可以解释一下吗?
在每字节位数为 8 的平台上:
1个十六进制字符代表4位,即“半字节”。
因此 16 个十六进制字符代表 8 个字节(不是 16 个字节)。
请注意,通常每个字节的位数由 定义CHAR_BIT。
因此,从理论上讲,一个字节可以由 8 位以外的其他内容组成。