[問題] 陣列指標與陣列: 位址相同, 值卻不同
各位大大 想請教一個觀念
在下面的情況下, a+2 與 ptr+1 的 位址是相同的
但是為什麼*(a+2) 與 *(ptr+1) 的 值不同呢
想了好久 (我是在gcc 4.3下面編譯)
#include<stdio.h>
int main(int argc, char* argv[])
{
int a[5]={1,2,3,4,5};
int (*ptr)[2]=a;
printf("%p\n", a+2); //0xbf9cdd54
printf("%d\n", *(a+2)); //3
printf("%p\n", ptr+1); //0xbf9cdd54
printf("%d\n",*(ptr+1)); //-1080238764
}
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.32.4.97
※ 編輯: inventorr 來自: 114.32.4.97 (04/07 00:05)
推
04/07 02:46, , 1F
04/07 02:46, 1F
→
04/07 02:47, , 2F
04/07 02:47, 2F
推
04/07 10:29, , 3F
04/07 10:29, 3F
討論串 (同標題文章)
以下文章回應了本文 (最舊先):
完整討論串 (本文為第 1 之 5 篇):