在學習c語言的時候我們都知道有指標這麼乙個東西,相信大部分人都頭疼過,因為指標雖然威力很大,但是很棘手,一不小心就玩脫了。
指標其實就是乙個變數,只不過指標存放的是資料在記憶體中存放的位址而不是資料本身的值,通過修改指標指向的類容可以改變乙個變數的值
引用是引用了物件的乙個同義詞,就像乙個別名,對引用的操作和對變數直接操作完全一樣,引用和指標在語法上看起來不同,但是底層實現是一樣的。
指標的大小和程式的位址空間有關,32位程式只有4g的位址空間,42億9千萬個位址。從0位元組到42億9千萬,需要用4個位元組才可以表示完。同樣64位需要8個位元組才能表示完。sizeof乙個指標得到的是位址的大小,sizeof引用是和變數型別有關。指標++,加的是指向型別的大小。此外引用比指標安全一些,不會出現對空指標解引用的一大堆問題。
1.指標是乙個實體,需要分配記憶體空間。引用只是變數的別名,不需要分配記憶體空間
2.引用在定義的時候必須要初始化,並且不能夠被改變。指標在定義時不一定要初始化,並且指向的空間可以改變。(引用從一而終)
3.指標可以有多級指標(*p,**p),但是引用沒有多級引用
4.指標和引用的自增結果運算不一樣。(指標是指向下乙個空間,引用是引用的變數值加一)
5.sizeof引用是引用的變數型別的大小,sizeof指標是指標本身的大小。
6.引用訪問乙個變數是直接訪問,而指標訪問乙個變數是間接訪問
7.指標在使用時需要解引用
指標引用和引用指標的區別
c 在傳參的過程中,指標 和指標引用 是有區別的。雖然,我們往往可以通過傳指標然後通過間址訪問來修改指標所指向物件的值,同樣,通過引用也可以直接修改物件的值。但是,當傳指標的時候有乙個問題,就是,我們雖然可以通過指標來修改指標所指向物件的值,但是我們沒有不能直接修改指標的內容 也就是指標變數存放的位...
傳指標和傳指標引用的區別 指標和引用的區別(本質)
指標傳遞引數本質上是值傳遞的方式,它所傳遞的是乙個位址值。值傳遞過程中,被調函式的形式引數作為被調函式的區域性變數處理,即在棧中開闢了記憶體空間以存放由主調函式放進來的實參的值,從而成為了實參的乙個副本。值傳遞的特點是被調函式對形式引數的任何操作都是作為區域性變數進行,不會影響主調函式的實參變數的值...
傳指標和傳指標引用的區別 指標和引用的區別(本質)
指標傳遞引數本質上是值傳遞的方式,它所傳遞的是乙個位址值。值傳遞過程中,被調函式的形式引數作為被調函式的區域性變數處理,即在棧中開闢了記憶體空間以存放由主調函式放進來的實參的值,從而成為了實參的乙個副本。值傳遞的特點是被調函式對形式引數的任何操作都是作為區域性變數進行,不會影響主調函式的實參變數的值...