#include <stdio.h>
int main(void)
{
int *ptr;
printf("The Hex value of ptr is 0x%x",ptr);
printf("The pointer value of ptr is %p",ptr);
}
,輸出是有點不同,我不知道爲什麼爲什麼指針的值因使用printf(%x)而不同?
The Hex value of ptr is 0x24a77950
The pointer value of ptr is 0x7fff24a77950
它顯示PTR的值是一個十六進制整數,但十六進制輸出缺少的一部分7fff
。
這是對printf的格式問題還是其他什麼東西?
[使用了錯誤的格式說明將調用*未定義的行爲*](https://stackoverflow.com/a/30354164/995714) – 2017-10-28 16:41:57
可能重複[當我使用錯誤的格式說明符時會發生什麼?](https://stackoverflow.com/questions/16864552/what-happens-when-i-use-the-wrong-format-specifier) – 2017-10-28 16:42:09