[問題] address的問題
int d = 3;
int *k = &d;
int **k2 = &k;
int ***k3 = &k2;
cout<< k << ' ' << k2 << ' ' << k3 << endl;
output: 印出了三個不同的位址,其中各個的差距都是12
問題一:為什麼是差距是12?
接著我在試著宣告
size_t size = k-k2;
發現了這兩個位址是不能相減的
錯誤顯示的是型別不同(一個是int*,另一個是int**)
問題二:這邊我一直沒有搞得很懂,為什麼兩個位址不能相減?
不能的理由是什麼?
C語言新手,麻煩各位解答了
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.112.25.105
※ 文章網址: http://www.ptt.cc/bbs/C_and_CPP/M.1409192933.A.B4A.html
→
08/28 10:33, , 1F
08/28 10:33, 1F
→
08/28 10:34, , 2F
08/28 10:34, 2F
→
08/28 10:35, , 3F
08/28 10:35, 3F
→
08/28 10:35, , 4F
08/28 10:35, 4F
→
08/28 10:36, , 5F
08/28 10:36, 5F
推
08/28 11:12, , 6F
08/28 11:12, 6F
→
08/28 11:12, , 7F
08/28 11:12, 7F
討論串 (同標題文章)
完整討論串 (本文為第 1 之 3 篇):
問題
1
7