我在看下面的代碼,不知道爲什麼一個地址沒有得到在printf()
結印。根據我迄今爲止使用指針的經驗,下面的printf()
語句將打印指針指向的變量的十六進制地址,但在這種情況下,我正在觀察不同的行爲。當我試圖打印出這個指針的內容時,爲什麼不打印地址?
#include <stdio.h>
int main (void)
{ const char * p = "Hello World!";
printf("%p\n", p);
return 0;
}
而不是地址,我得到輸出10968
。是什麼賦予了?
什麼讓你覺得'10968'不是一個地址? – CoffeeandCode
你看過[這裏](http://stackoverflow.com/questions/14733761/printf-formatting-for-hex)正確格式的十六進制? – skatedan