[問題] 指標卡關了><
最近剛踏入C++的懷抱?
前面概念的部分還OK,但是遇到指標就真的投降...
指來指去的,搞得我都亂了,以下是書上的某個範例
減少版面所以只放有問題的地方
麻煩各位大大協助我破關@@
謝謝^^
int main(void){
int temp=2; //宣告整數變數,並設定初值
int *ptr=&temp; //宣告變數指標,並設初值為指向 temp
/*-----顯示 temp 的位址與值-----*/
cout << "The address of temp: " << &temp << endl;
//&temp=tmep2的記憶體位址,假設temp2的記憶體位址為0012FF4C
cout << "The value of temp: " << temp << endl << endl;
//temp=2 這部分OK,上面有已經有宣告為整數。
※到這裡為止
temp=2
*ptr=&temp=0012FF4C
而且書上不是寫變數前面加*代表指的是記憶體位址的"值"
可以照作者這樣宣告,不是代表*ptr是指向記憶體位址嗎?
/*-----顯示 ptr 的位址、值與其值的位址所指向的值-----*/
cout << "The address of ptr : " << &ptr << endl;
//書上範例是寫輸出為0012FF40 <==不懂
我卡住的點在於,上面也沒有宣告ptr,如何取得ptr的記憶體位址
cout << "The value of ptr : " << ptr << endl;
//問題點同上,書上的輸出是寫0012FF4C <==不懂
我卡住的點在於,取記憶體位址不是變數前面要加"&"嗎?
cout << "The value of ptr's value address : " << *ptr << endl << endl;
//書上範例寫的輸出是2 <==不懂
我卡住的點在於,一開始不是宣告*ptr=&temp
照理說*ptr不是應該會等於&temp=0012FF4C嗎?
*ptr=3; //更改 ptr 指向位址整數的值,同temp=3
/*-----顯示 temp 與 ptr 的位址與值-----*/
cout << "After *ptr=3" << endl;
cout << "The value of temp: " << temp << endl;
//temp=3,這部分也OK
cout << "The value of ptr's value addfress : " << *ptr << endl;
//*ptr=3,這部分OK
}
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 118.171.31.229
→
02/25 00:53, , 1F
02/25 00:53, 1F
→
02/25 00:53, , 2F
02/25 00:53, 2F
→
02/25 00:53, , 3F
02/25 00:53, 3F
推
02/25 00:58, , 4F
02/25 00:58, 4F
→
02/25 00:58, , 5F
02/25 00:58, 5F
→
02/25 00:59, , 6F
02/25 00:59, 6F
推
02/25 02:26, , 7F
02/25 02:26, 7F
→
02/25 02:27, , 8F
02/25 02:27, 8F
討論串 (同標題文章)