看板 C_and_CPP 關於我們 聯絡資訊
大家午安 前幾天有朋友問我一個問題,我也不太懂所以上來問一下各位 C語言 int i = 3; int *j; int **k; j = &i; k = &j; printf("%x, %x, %u\n", k, *k, **k); 結果為 j的記憶體位置, j的記憶體位置 +12 bytes, i的值 我不太懂為什麼是 +12 呢 ? 謝謝各位 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 118.163.91.121 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1466142248.A.726.html ※ 編輯: EngRookie (118.163.91.121), 06/17/2016 13:47:20
bibo9901: compiler決定的. 印象中沒規定要按宣告順序/連續排列 06/17 14:00
uranusjr: *k 就是 j 的值亦即 i 在記憶體中的位置, 至於為什麼是 06/17 14:02
uranusjr: k + 12 就是平台想這麼做而已, 沒為什麼 06/17 14:03
EngRookie: 謝謝 06/17 15:10
stupid0319: 結果為 k ,的這行好像怪怪的................ 06/17 20:56
haosan: j的記憶體位置, i的記憶體位置, i的值 06/17 21:41
haosan: k的記憶體位置是printf("%x", &k) 06/17 21:42
※ 編輯: EngRookie (122.147.26.70), 06/19/2016 01:46:49 ※ 編輯: EngRookie (122.147.26.70), 06/19/2016 01:47:20