打印十六进制值 ( %x
) 和地址 ( %p
) 时,格式略有不同。0x
在十六进制值的情况下,打印的值不以开头:
int main()
{
int x = 0x1234;
printf("Value of x: %x\n", x);
printf("Address of x: %p\n", (void*)&x);
}
产量(GCC):
Value of x: 1234
Address of x: 0xffb0fbfc
为什么0x
在地址的情况下强迫你?
我想它归结为标准。
如果我愿意,打印地址的正确方法是0x
什么?是%p
不是只有一个%x
加上一个0x
才对?