Re: 指標(Pointer)與參考(refrence)
※ 引述《arick (arick)》之銘言:
: 請問有沒有人有空可以解釋一下指標與參考的用法及使用時機
: 請問以下的寫法哪些有錯?錯在哪裡?
: int ip=24;
正常的宣告
: int *p=1024;
宣告一個指向int的指標 並讓他指向1024這個位址
注意 1024可不是安全的位址
: int *q1=ip;
q1這個指標指向24這個位址
如果你要指向ip 這是不正確的寫法
compiler還會丟出一個warning
表示型態不符
: int *q2=&ip;
right
現在q2這個指標指向ip
: int *q3=*p;
p指向整數 "*p"是個整數
所以這樣寫也是不正確的
: int *q4;
: q4=*p;
錯
: q4=ip;
錯
: q4=&p;
錯(上面的p是宣告成int*吧)
: &p=ip;
: &p=*q1;
: &p=&ip;
這些都會compiler error
因為&只是取值運算
變數的位址是不能更動的
: ip=*&p;
^^^
這個其實就是p的意思
不過ip是int p是int*
所以這樣寫也是錯的
: 高手們可否解答以上的問題呢
: 謝謝
上面我說寫得不正確
不是說一定會compiler error
而是這樣的錯誤:
1.把指標指向一個不安全的位址
2.把位址指定給整數
3.把整數指定給位址
2和3的狀況 通常compiler都會給warning
--
※ 發信站: 批踢踢實業坊(ptt.csie.ntu.edu.tw)
◆ From: 61-216-134-60.HINET-IP.hinet.ne
噓
61.64.118.10 07/09, , 1F
61.64.118.10 07/09, 1F
→
61.64.118.10 07/09, , 2F
61.64.118.10 07/09, 2F
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章