注意本人的部落格都遷移到本人自己搭建的部落格位址,通過此處可檢視。
本人在工作之餘學習c++,但是可能在訓練過程種,會通過各種刷題的形式去提公升自己,但是這樣在一些公司(尤其是大廠)面試的時候會很尷尬。而c++種的指標和引用有什麼區別和聯絡呢,現在就來說道說道,如有錯誤,敬請大家指正。
首先我們來說道說道指標(point)
,相信我們在c的學習中就會遇到這個在c程式設計中無處不在的朋友。
指標用來存放位址的乙個變數,它存放的位址和存放位址中的資料都可以被更改,但是如果是常量指標則不可被修改,即指標是乙個實體。指標變數宣告的一般形式為:
type *var-name;
一些有效的指標宣告:
int *ip; /* 乙個整型的指標 */
double *dp; /* 乙個 double 型的指標 */
float *fp; /* 乙個浮點型的指標 */
char *ch; /* 乙個字元型的指標 */
指標傳遞是一種值傳遞的方式,它傳遞出去的只是位址值,值傳遞的時候我們可以知道被調函式的形參會被當做乙個區域性變數來出來,會在棧中去給其分配空間用 來儲存主調函式傳輸過來的值,該值只不過是主調函式中實參值的乙個拷貝,所以在被調函式中去修改傳輸過來的值並不會去影響主調函式中的實參值。
引用跟原來的變數實質上是同乙個東西,只不過是原變數的乙個別名而已。指標變數宣告的一般形式為:
type &var-name = target-name;
例如
char ch;
char &rp=ch;
相同點
都是和位址有關係的,我們可以看到指標指向一塊記憶體,而引用是一塊記憶體的別名;
不同點指標是乙個實體;它在棧中有自己使用的空間,但是引用沒有。
雖然指標不用但是最好初始化;引用必須初始化。
指標使用時須加*
;引用使用時需要加&
。
引用是型別安全的,而指標不是(引用比指標多了型別檢查)。
引用不能用const去修飾;但是指標可以。
在使用自增時,引用是值進行自增,而指標是位址進行自增。
引用不能為空,指標可以為空。
「sizeof 引用」得到的是所指向的變數(物件)的大小,而「sizeof 指標」得到的是指標本身(所指向的變數或物件的位址)的大小,比如typeid(t) == typeid(t&) 恒為真,sizeof(t) == sizeof(t&) 恒為真。
一旦引用被初始化為乙個物件,就不能被指向到另乙個物件。指標可以在任何時候指向到另乙個物件。
引用必須在建立時被初始化。指標可以在任何時間被初始化。
引用的內部使用指標實現的(如何實現這裡不做解釋)
引用是受了限制的指標
c 中的指標和引用
首先 指標是儲存的變數的位址,引用是變數的別名,這個必須記住 單純的給變數取別名沒有任何的意義,作為引數傳遞,能保證引數傳遞過程中不產生任何的副本 引用可以直接操作變數,但指標的話必須通過 p 間接的操作變數,指標可讀性行比較低 引用必須要有初始值 int a 常量必須要有初始值 const int...
C 中的指標和引用
文章中舉了大量的例子,希望讀者可以耐住性子好好讀一下,相信會對指標和引用有底層的了解。1.指標 2.作用 1.宣告指標變數 2.表示指向 取出對應的普通型變數的值 3.舉例 例項一 includeusing namespace std int main 控制台輸出結果 指標變數point的值 0x6...
c 中的引用和指標
參考回答 定義 1 引用 c 是c語言的繼承,它可進行過程化程式設計,又可以進行以抽象資料型別為特點的基於物件的程式設計,還可以進行以繼承和多型為特點的物件導向的程式設計。引用就是c 對c語言的重要擴充。引用就是某一變數的乙個別名,對引用的操作與對變數直接操作完全一樣。引用的宣告方法 型別識別符號 ...