C 學習筆記 指標和引用的注意事項

2022-02-04 14:59:36 字數 1238 閱讀 8684

一:指標

1指標變數的定義,由資料型別後跟星號,再跟指標變數名組成。

2&表示乙個實體的位址,此符號可用來對指標變數初始化和賦值

如:int count = 18;

int * iptr = &count;

int * ip;

ip = &count;

3*除了可以用來定義指標,標緻乘法運算子,還可以做間訪操作

間訪操作就是:取指標的值

如:int count = 18;

int * iptr = &count;

*iptr = 16;

cout<<*iptr<<"  "《指標本身也是一種型別,在記憶體中也占有空間,所以也有指向指標的指標

如int count = 18;

int *ip = &count;

int* * iptr = &ip;

cout<<**iptr《指標雖然是乙個位址,但卻是有型別限制的

不能把float的變數位址賦值給int型的指標

但是可以對指標進行強制轉換

如:float f = 34.5;

int * ip = reinterpret_cast(&f);

cout<<*ip《陣列名本身就是表示元素型別的位址

可以把陣列名賦值給指標變數

並且可以根據指標的增減來訪問陣列中的物件

如:int arr[6];

for(int i=0; i<6; i++)

for(int * p = arr; p

8常量指標是指向常量的指標

指標常量是指標值不能修改的指標

我想這兩個應該很少用到吧

二:引用

1引用在這裡是個名詞

從邏輯上理解引用其實就是個別名

引用定義時必須初始化,這是它與指標根本不同的地方

引用與指標相似也要求嚴格的型別匹配

2修改引用的值就是修改實體的值,就是修改對應的變數的值

int a = 12;

int & r = a;

r = 9;

cout<應輸出9

應注意的是:

引用的值雖然可能發生變化但其位址是不變的

可以通過&r檢視該引用的位址

與指標對比:

指標可以改變關聯的實體,引用只是乙個實體的別名

指標可以操作多個實體,引用只能操縱乙個實體

引用比指標更安全些,更適合高階程式設計,安全程式設計

C 隨筆(指標和引用的使用注意事項)

1 不要用函式的行參,行參是用來向函式裡 傳遞引數的。如class obj obj obj const obj obj class objs objs obj m obj obj void getobj obj m obj obj getobj void getobj obj obj ptr voi...

學習指標注意事項

宣告指標的一般形式 資料型別 指標變數名 1 在初始化時賦值 2 在後期賦值 1 通過變數名訪問乙個變數是直接的,通過指標訪問乙個變數是間接的 2 p i 意思是取變數i的位址賦給變數p 1 指標變數名是p,而不是 p 2 指標變數不可以直接賦值 int a 100 int p p 100 編譯不能...

c 中引用變數的注意事項,和指標的區別

1.定義引用時必須初始化 變數或者常量 且初始化後不能再指向其他變數或者常量。指標卻可以在定義時不初始化,可以在定義後的任何地方初始化,或者改變指向的物件。2.存在指標的引用,但是沒有引用的指標,因為引用在概念上只是乙個代號,沒有實體空間。3.不能定義引用陣列,即便用類似 int b 5 初始化也不...