[問題] 有關指標的轉型和偏移
已爬文但關鍵字不知道該怎下,所以想請問一下版大
程式碼
int main (void)
{
int arr[3] = {1, 2, 3};
int* ptr =(int*)(&arr+1);
printf ("%d \n", *(ptr-1));
return 0;
}
上面程式我執行完的結果是 3
但我自己解讀的結果是 1
我的想法是指標ptr 指向陣列arr的位置+1,所以是arr[1]
在printf的時候又將 ptr-1,所以又指回arr[0]位置,
因此結果為 1
想問一下我的觀念那邊有問題,還有(int *)跟(&arr+1)的觀念和作用
感謝~~~
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 123.193.97.137
→
01/23 10:59, , 1F
01/23 10:59, 1F
→
01/23 13:15, , 2F
01/23 13:15, 2F
→
01/23 15:53, , 3F
01/23 15:53, 3F
→
01/23 15:54, , 4F
01/23 15:54, 4F
→
01/23 15:57, , 5F
01/23 15:57, 5F
→
01/23 18:58, , 6F
01/23 18:58, 6F
→
01/23 18:59, , 7F
01/23 18:59, 7F
→
01/23 19:06, , 8F
01/23 19:06, 8F
→
01/23 19:52, , 9F
01/23 19:52, 9F
→
01/23 19:53, , 10F
01/23 19:53, 10F
→
01/23 19:57, , 11F
01/23 19:57, 11F
→
01/23 19:58, , 12F
01/23 19:58, 12F
→
01/23 19:58, , 13F
01/23 19:58, 13F
※ 編輯: athin7 來自: 123.193.97.137 (01/23 20:06)
→
01/23 20:14, , 14F
01/23 20:14, 14F
→
01/23 20:15, , 15F
01/23 20:15, 15F
→
01/23 20:16, , 16F
01/23 20:16, 16F
→
01/23 20:18, , 17F
01/23 20:18, 17F
→
01/23 20:19, , 18F
01/23 20:19, 18F
→
01/23 21:21, , 19F
01/23 21:21, 19F
→
01/23 21:38, , 20F
01/23 21:38, 20F
→
01/23 21:57, , 21F
01/23 21:57, 21F
→
01/24 00:49, , 22F
01/24 00:49, 22F
→
01/24 11:32, , 23F
01/24 11:32, 23F
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章