0
我讀過陣列桶值存儲在連續的內存位置。我試圖在我的64 bit mac
作爲爲什麼打印顯示非連續地址的C數組?
char str1[] = "Hell";
printf("%p:%lu:%c, %p:%lu:%c, %p:%lu:%c, %p:%lu:%c", str1[0], str1[0], str1[0], str1[1], str1[1], str1[1], str1[2], str1[2], str1[2], str1[3], str1[3], str1[3]);
,我得到的結果打印的字符數組的內存位置被
0x48:72:H, 0x65:101:e, 0x7fff0000006c:140733193388140:l, 0x7fff0000006c:108:l
這不會看起來像一個連續的內存地址給我,考慮到大小char
是1 byte
。如果我學習錯了,請幫助我理解這一點。
你不張貼代碼打印任何內存地址。 – axiac
謝謝@axiac,我意識到我沒有把'操作符的地址'放錯了。如果你可以寫它作爲答案,我會接受它。用'&'測試,它正在工作。 – pkill
Crank的警告級別,許多編譯器會警告你格式字符串和參數之間的不匹配。 – Deduplicator