討論串[問題] 陣列指標與陣列: 位址相同, 值卻不同
共 5 篇文章
內容預覽:
各位大大 想請教一個觀念. 在下面的情況下, a+2 與 ptr+1 的 位址是相同的. 但是為什麼*(a+2) 與 *(ptr+1) 的 值不同呢. 想了好久 (我是在gcc 4.3下面編譯). #include<stdio.h>. int main(int argc, char* argv[])
(還有147個字)
內容預覽:
因為type不同. a 是由 int 所組成的 array. ptr 所指的是 int[2] (長度是2的int array). a+2 = a + 2*sizeof(int). *(a+2) 的 type 是 int. 所以輸出無誤. ptr+1 = a + sizeof(int[2]). = a
(還有120個字)
內容預覽:
好詭異的程式, 我第一個想法和推文一樣 : compile 不會過. 不過試了一下, 只有 warning.. dendrobium 解釋得和我想法不同, 所以我試了一下, 驗證我的猜測 :. int (*ptr)[2] --> 宣告 int pointer array, 不是 int array.
(還有180個字)