評價: 0 回應: 0 閱覽: 75
置頂

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**)

問題二:這邊我一直沒有搞得很懂,為什麼兩個位址不能相減?

不能的理由是什麼?

會員登入 (先登入會員才能回覆留言喔!)

Facebook留言