1.引用的作用:給變數起乙個別名,是c++對c的擴充。原名和別名有相同的位址,根本上就是同乙個東西,只是名字不一樣。c++的引用機制主要是為了用作函式引數,增強函式傳遞資料的能力,比如swap函式,引用就是為了直接修改實參。
2.宣告方式:
int a;
int &b=a;
&緊跟在資料型別後,即為引用宣告符,其他地方為取位址符。
3.與指標區別:
宣告乙個引用時必須同時初始化,之後不能再修改,指標不用;
引用初始化後不能再改變,指標可以;
引用不能指向空值,指標可以;
不能引用陣列或陣列元素;
不能建立引用的引用;
指標不能指向引用;
1.呼叫函式時不會改變指標的值,但可能會改變指標指向的值。
1.假設指標p已指向陣列中某一元素,則p+i指向該元素的下i個元素,實際上,p+i=p+i x sizeof(datatype)。
2.c++是將函式形參裡的陣列當做指標來處理的,也就是函式呼叫時不存在陣列,只有指標。
1.字串的一種定義方式:
char str="asdasd";
定義時可以不寫元素個數,但必須初始化,int 啥的也可以這樣定義,然後就會自動識別個數,char的話最後會加上'\0'。
2.char*定義的字串可用來訪問,但不能修改。
1.指向函式的指標一定要用"()",比如(*p),這是因為優先順序的問題,如果沒有括號就成了返回值為指標的函式了。如int *a(int x,int y),就是返回值為指標的函式。
2.指向函式的指標可以作為函式的引數,這是為了將函式名傳給函式形參,就可以在呼叫乙個函式時根據不同的實參再呼叫別的函式,這種用法很少見。
1.int *p[4]=(int *) p[4]即為指標陣列,陣列中元素是指標型別的。
int (*p)[4]為指向陣列的指標,陣列中元素是int。
1.(void *)指標型別是指向不確定的型別而不是任何型別,必須轉換為確定的型別才能使用,所以只是乙個過渡。
2.可以把非void *賦給void *,但不能反過來。
e.g.
int a=89;
int *p1=&a;
void *p2;
p2=(void *)p1;
*(int *)p2即為a;
C 引用 指標
1.引用的概念及用法 引用 引用不是定義乙個新的變數,而是給乙個已經定義的變數重新起乙個別名。例如 int b a b是a的引用,即b是a的別名。引用的特點 a.乙個變數可取多個別名 b.引用必須初始化 int b 不知道b是誰的別名 c.引用只能在初始化的時候引用一次,不能改變為再引用其他的變數 ...
c 引用 指標。
一 什麼是引用 reference 已經存在的物件的另外乙個名字。引用有什麼特別的?1.引用在定義時,以 開頭。2.引用不是物件,只能繫結在物件上。所以必須在初始化的時候,指定引用繫結的物件。而且引用繫結是不可以改變的。int val 0 int refval val 不允許這樣初始化int ref...
C 中的指標 引用 指標引用
在c 指標的用處很大,可以快讀的訪問位址空間,而且本身不佔太大記憶體。指標操作在引數傳遞的時候非常方便。既可以作為傳入引數,又可以作為返回值。但是可不可作為函式的傳出引數呢?下面通過乙個例子來說明。教室裡面包含多個老師,每個老師管理多個學生 學生類 pragma once include class...