[問題] 詢問一個洪維恩書上的觀念
我一直覺得怪怪的,詢問一下版上有沒有更好的講法
在陣列跟指標的部分
書上說:array陣列名稱"本身就是個指標,他的值是指向第一元素的地址
假設我宣告一個陣列
int array[5];
也就是若陣列地址為下:
array[0]={31}; //地址為0x22ff31
array[1]={70}; //0x22ff35
array[2]={12}; //0x22ff39
array[3]={3}; //0x22ff3d
array[4]={88}; //0x22ff41
而array本身是個指標,它的值為第一個元素的地址,
而它的地址也是同一個地址,如下
array={0x22ff31} //而這個指標本身的地址又是0x22ff31
那我們知道地址是唯一的,若以指標來看來,它的值為0x22ff31
若以第一個元素來看,他的值又是31
這樣不是很矛盾嗎?
--
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 134.208.1.29
推
09/25 16:07, , 1F
09/25 16:07, 1F
推
09/25 16:55, , 2F
09/25 16:55, 2F
先感謝各位推文,就是如果我
printf("%d",array);
那他會輸出是0x22ff31
如果我輸出
printf("%p",&array);
那他的地址也是022ff31
那問題就是如果我們輸出
printf("%p",&array[0]);
地址也是022ff31,也就是array跟array[0],其實是同一個地址
但是array[0]的值是31
我們輸出
printf("d",array[0]);
他會輸出31
這樣感覺就很矛盾,同樣輸出同一個地址的"值"
輸出array是0x22ff31 而輸出array[0]卻是31
→
09/25 17:07, , 3F
09/25 17:07, 3F
→
09/25 17:08, , 4F
09/25 17:08, 4F
→
09/25 17:08, , 5F
09/25 17:08, 5F
※ 編輯: Fan383 來自: 134.208.1.29 (09/25 17:35)
→
09/25 17:28, , 6F
09/25 17:28, 6F
→
09/25 17:29, , 7F
09/25 17:29, 7F
→
09/25 17:29, , 8F
09/25 17:29, 8F
推
09/25 17:35, , 9F
09/25 17:35, 9F
→
09/25 17:36, , 10F
09/25 17:36, 10F
→
09/25 17:36, , 11F
09/25 17:36, 11F
→
09/25 17:37, , 12F
09/25 17:37, 12F
→
09/25 17:37, , 13F
09/25 17:37, 13F
推
09/25 17:43, , 14F
09/25 17:43, 14F
推
09/25 17:45, , 15F
09/25 17:45, 15F
推
09/25 17:59, , 16F
09/25 17:59, 16F
→
09/25 18:00, , 17F
09/25 18:00, 17F
推
09/25 18:07, , 18F
09/25 18:07, 18F
推
09/25 18:16, , 19F
09/25 18:16, 19F
→
09/25 18:40, , 20F
09/25 18:40, 20F
討論串 (同標題文章)
完整討論串 (本文為第 1 之 2 篇):
8
20
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章