1 引用
簡單理解引用就是乙個變數的另乙個名字,從這個名字的角度對變數可以加以修飾,同時擁有const指標的特性 ,所以在宣告時必須初始化 1
inta=1
;2const
intb=4
;3int&
ref_a;
//必須初始化 :declared as reference but not initialized
4const
int&
ref_a_const=a;
5ref_a++;
6ref_a_const++;
//唯讀的:increment of read-only reference 『ref_a_const』
7int
&ref_b=b;
//型別不匹配: invalid initialization of reference of type 『int&』 from expression of type 『const int』
8const
int&
ref_b_const=b;
2 指標
2.1 常用的宣告(閱讀規則)
int a;定義乙個整型數
int *a;指向整型數的指標
int **a;指向指標的指標,它指向的指標指向整型數
int a[10];擁有10個整型數元素的陣列
int *a[10];擁有10個指向整型數指標的陣列
int (*a)[10];指標 這個指標指向有10個整型數的陣列
int (*a)(int);指向函式的指標,該函式返回int ,有乙個int引數
int (*a[10])(int);陣列-》有10個指標-》每個指標指向函式-》函式返回int,有乙個int引數
2.2指標運算
intb[5
]=;int
*pint=(
int*)(&
b+1);
//必須初pint指向了"b[5]"
2.3指標常量、常量指標
這種事有點文字遊戲,指標常量(* const)就是乙個常量,常量指標(const *)就是一指標,但是在它看來它所指向的變數x是個常量,無論x是不是常量。
例如:int * const p1;//是指標常量,它本身的內容是不能被修改的,但是裡面指標指向的內容是可以修改的。
int const * p2;//常量指標,它們本事可以別修改,但是指向的內容不可修改
const int* const p3;//常量指標,並且指向的內容也不可以修改的。
1#include
<
stdio.h
>
2int
main()3
3this指標:this指標的作用域是類內部,在類的非靜態函式中訪問類的非靜態成員時,編譯器會自動將物件位址作為乙個隱含的引數傳遞給函式
呼叫成員函式時,會將當前物件的this指標傳遞給成員函式。乙個類的成員函式體只有乙個,而成員函式之所以能夠把屬於此類的各個物件區別開來,是因為每個執行類成員函式時,都會把當前物件的this指標傳入成員函式,
4指標與函式 1
#include
<
iostream
>
2using
namespace
std;
3int
max(
intx,
inty)47
//這個函式返回的是指標
8float
*find(
float*p,
intx)912
intmain()13;
16int(*
p)(int
,int
);//
這個指標指向函式
17float*q
=find(score+1
,1);18
inta;19p
=max;20a
=(*p)(1,
2);21cout
<<"a=
"<<
a<<
endl;
22cout
<<
"*q=
"<<*
q<<
endl;
23return0;
24}
面試題 指標 引用
返回目錄 問題 問 引用與指標有什麼區別?答 1.引用必須初始化,指標可以不用。2.引用初始化以後就不能被改變 即只能初始化一次,始終只指向指定的物件 而指標可以改變所指向的物件。3.不存在指向空值的引用,而指標可以指向乙個空值,即空指標。4.因為引用不能指向空值,這意味著使用引用之前不需要測試其合...
C 高頻面試題指標和引用
15 請你理解的c 中的 引用和指標 指標是指向一塊記憶體位址的變數,這個變數可以指向其他位址 引用是乙個變數的別名,只能是乙個變數的別名。乙個變數的引用可以轉為指向它的指標。1.初始化不同,引用使用時必須初始化,且只能指向乙個變數,初始化不能指向其他變數 指標不一樣,指標使用時不必初始化,可以指向...
面試題 指標
一 指標 1 利用指標實現兩數交換 include using namespace std void swap1 int p,int q void swap2 int p,int q void swap3 int p,int q void swap4 int p,int q void swap5 i...