這張圖正確嗎?如果不正確,您能糾正我嗎?
char a[] = "halli";
const char *s = "hallo";
char *t = NULL;

uj5u.com熱心網友回復:
a并且s是正確的(如圖所示)。
t不“指向” NULL,t 是 NULL(存盤空指標值)。
記憶體映射看起來像這樣(地址僅用于說明,假設大端表示):
Address Item 00 01 02 03
––––––– –––– —– –– –– ––
0x1000 a 'h' 'a' 'l' 'l'
0x1004 'i' 00 ?? ??
0x1008 s 00 00 80 00
0x100c t 00 00 00 00
...
0x8000 'h' 'a' 'l' 'l'
0x8001 'o' 00 ?? ??
a是一個陣列,存盤從 address 開始char的字串的內容。 是指向并存盤字串字面量的第一個字符的地址的指標,它從 開始。 是一個指向并存盤一個空指標值的指標,我將其表示為。"halli"0x1000schar"hallo"0x8000tchar0x0000
雖然空指標常量(NULL或指標背景關系中的常量運算式0)始終為零值,但執行環境使用的空指標值不必是 - 它只需與任何指向物件的指標比較不相等或功能。
uj5u.com熱心網友回復:
沒有 t 將“指向”的“null”。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/493271.html
