很多人覺得指針的學習很難,不容易懂,而且還迷茫的不行,今天我們就來看看學霸是怎么在課堂上學習的。
1、什么是指針?指針數據類型的作用?
指針是保存地址的數據類型;在不影響理解的情況下,有時對地址、指針和指針變量不區分,統稱指針
1. *指針 所取得的字節數
2. 指針運算 指針+1 <===> 移動它所指向數據類型的字節數
2、什么是指針變量?
指針變量是用來保存地址的變量; 3、指針變量的定義
<存儲類型> <數據類型> * 指針變量名;存儲類型默認為auto; 4、指針的作用
間接操作內存
當需要函數的返回值個數大于一時,可使用指針5、所有的指針在內存中都占有四個字節;sizeof(指針變量)==4;
6、*在C語言中的三種用法
(1) 、雙目運算符 4*5=20
(2) 、在定義變量時,*表示指針這種數據類型;
(3) 、作為單目運算符,*取值運算符;
7、定義一個基本類型的變量i,訪問i的方式有兩種:直接訪問:通過變量名的方式去訪問;
間接訪問:通過空間的首地址來訪問;
8、如果你想通過一個函數改變另外一個函數中的變量值,那么你可以將該變量的地址傳過去進行改變;
9、將一個數組的首地址賦值給數組指針
指針變量名=&數組名[0]; 指針變量名=數組名;
10、指針的運算
對于不同數據類型的兩個指針實行加減法運算是無意義的; 指針+n <===> 指針+n*sizeof(指針所指向的數據類型)
指針-n <===> 指針-n*sizeof(指針所指向的數據類型)數組名+n<===>指針+n<===>&數組名[n]<===>&指針[n];
*(數組名+n)<===>*(指針+n)<===>數組名[n]<===>指針[n];
*指針變量名<===>數組[0];
11、對于一個數組,不能數組名(地址常量)自加一(數組名++)是錯誤的!
12、數組作為形參時,他只是一個指針而已
13、注意Makefile文件的編輯;
14、注意使用gedit;
15、發生段錯誤表示可能操作了空指針或野指針;
16、NULL是一個保留地址,不可讀,不可寫; 指針指向常量 指針就不可被修改
指針指向變量 指針就可被修改
17、指針數組
18、函數指針
19、 函數指針數組