假如
問題一
ptr1=&a (a是變數設a值為5就設inta=5)
指的是ptrl和a是同一位址?
所以*ptr1和a變數是同一數值(數值為5嗎?)?
問題二
有一個陣列a[i]
*ptr2=a
是 *ptr2指標儲存 a 記憶體位址?
若假設 *ptr2=a;
未何 ptr2=ptr2+1會等於 a[1]
其實
問題一
想問的是若ptrl=&a 是同一個嗎?
記憶體應該會配一個位址給指標,只是ptr1和&a佔用一個記憶體位址感覺怪怪的。
問題二
我覺得ptr和A[]的記憶體位址應該是不一樣的,我想ptr+1的位址應該跟陣列a的位址不一樣才對
只是如上式未何 ptr2=ptr2+1會等於 a[1]
也許我的邏輯有錯誤,只是我希望是理解。
指標跟變數若使用同一位址,我只是邏輯上不能接受。
還有指標位址為什麼能更改,陣列位址則不行。
我希望高手能幫我解惑,最重要能把記憶體如何搬運以及配置能很詳細的跟我解說。
我奉20點,因為此問題很久以前困擾我很多。
若我提的問題不夠詳細,在此先說聲抱歉。
還有,能不能請各位高手能以你們的見解把指標功能講解在詳細點。
更新1:
非常感謝以下各位大大幫我指點迷津,我已經弄懂了。 以前我讀C語言沒發生過這種指標問題,而且又修過資料結構。 由於2~3年已沒碰過程式,忘了快一大半,想說之前已學過的東西, 就把身邊C語言的書迅速瀏覽一次,卻誤讀了指標的定義。 當我想不透時,感謝以下各位大大所提供寶貴的意見。 而我又仔細的讀了一下,終於想通了。 我分析一下。
更新2:
假設a=5且*ptr1=&a結果如下: *ptr1=5 ptr1 = a位址 &ptrl = ptrl的本身位址 自從我把*和&弄清楚時,發覺指標變簡單許多。 若有想讀C語言的各位大大及水水,假如對指標不了解的地方。 希望此知識對你有些幫助。 下面兩位都對我有幫助,我很難做選擇,我想給大家幫我選。