[問題] C的指標和陣列
hi,想問一點比較初階的東西,看看自己的理解對不對
問題描述:
https://i.imgur.com/bnSFVCv.jpg
如果我這樣宣告:
int a[10];
這時候單純看a這個變數其實就是一個指向叫做a的整數陣列指標,沒錯嗎?
我原本以為a會在記憶體上的其他位置,然後像指標一樣指向陣列的起始位址
像下圖這樣:
https://i.imgur.com/n7OTGZq.jpg
但實際測試過後才知道a這個指標就位在陣列的起始位址
那我的問題是:
1.a是一個指標嗎?不然為什麼compiler會警告我a是一個 int *的參數呢?
2.如果我做下列動作
print ("%x", a)
也確實print出陣列的起始位址了,那不是代表a的記憶體地址內的資料確實是陣列的起始位
址嗎?
那這樣a[0]是存的東西為什麼不是陣列的起始地址?
以上兩個感覺有點初階的東西,但小弟一直想不透,懇請板友指點,謝謝
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.136.50.38 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1583224068.A.FC6.html
推
03/03 16:44,
4年前
, 1F
03/03 16:44, 1F
→
03/03 16:44,
4年前
, 2F
03/03 16:44, 2F
感謝你!
推
03/03 17:26,
4年前
, 3F
03/03 17:26, 3F
好的,小弟會去參考
沒想到在這邊也能看到p大!
※ 編輯: mistel (114.136.50.38 臺灣), 03/03/2020 18:33:48
→
03/04 01:59,
4年前
, 4F
03/04 01:59, 4F
→
03/04 02:00,
4年前
, 5F
03/04 02:00, 5F
→
03/04 02:00,
4年前
, 6F
03/04 02:00, 6F
→
03/04 02:01,
4年前
, 7F
03/04 02:01, 7F
推
03/06 02:14,
4年前
, 8F
03/06 02:14, 8F