字符串常量,我想獲得一個在C.得到一個地址用C
char * const MYCONST = "StringString";
字符串常量的地址據我所知consts在文本/代碼段「拯救」的記憶。 當我試圖讓第一個元素的地址MYCONST:
printf("%p\n",&(MYCONST));
至於結果我得到0x7fff15342e28,這是在棧,而不是在文本/代碼segement。 任何人都可以請幫我在C中得到一個字符串常量的地址嗎?
//編輯 我無法找到正確的答案至今:當我寫
char * const MYCONST1 = "StringString";
printf("Address of MYCONST1: %p\n",MYCONST1);
char * const MYCONST2 = "StringString";
printf("Address of MYCONST2: %p\n",(void*)MYCONST2);
這是輸出:
MYCONST1地址:0x400b91
MYCONST2地址:0x400b91
但他們應該有不同的地址,因爲它們是不同的常量。 任何人都可以解釋我,而結果長度爲七,而不是0x7fffa5dd398c像一個區域設置變量。
謝謝!
當我試圖讓指針值的地址:0x7fff70f54bb8。我認爲這不可能是正確的,因爲常量在代碼段中,並且此地址屬於堆棧? –