c語言指針詳(xiang)解(jie)(知(zhi)識點都有),不得(de)不看
時間:2018-08-30 來源(yuan):未(wei)知
很多人覺得指針的學習很難,不容易懂,而且還迷茫的不行,今天我們就來看看學霸是怎么在課堂上學習的。
1、什么是指(zhi)針?指(zhi)針數據類(lei)型(xing)的作(zuo)用?
指針是保存地址的(de)數(shu)據類型;在(zai)不影響理解(jie)的(de)情(qing)況下,有時對地址、指針和指針變量不區分,統稱指針
1. *指針 所取(qu)得(de)的(de)字節(jie)數
2. 指針運算 指針+1 <===> 移動(dong)它(ta)所指向數據類型的字節數
2、什么是指針(zhen)變量?
指針變(bian)量是用(yong)來保存地址的變(bian)量; 3、指針變(bian)量的定義
<存儲類(lei)型> <數據類(lei)型> * 指(zhi)針(zhen)(zhen)變量(liang)名;存儲類(lei)型默認為auto; 4、指(zhi)針(zhen)(zhen)的作(zuo)用
間接操作內存
當需要函數(shu)的返回值個數(shu)大于一時,可使用指(zhi)(zhi)(zhi)針(zhen)5、所(suo)有的指(zhi)(zhi)(zhi)針(zhen)在內(nei)存中都占有四個字節(jie);sizeof(指(zhi)(zhi)(zhi)針(zhen)變(bian)量)==4;
6、*在C語言中的三(san)種用(yong)法
(1) 、雙目運算符 4*5=20
(2) 、在定義變量時,*表示指針這種數據類(lei)型;
(3) 、作為(wei)單(dan)目運算符(fu),*取值運算符(fu);
7、定義(yi)一個(ge)基本類型(xing)的變(bian)量i,訪(fang)問i的方(fang)式有兩種:直接(jie)訪(fang)問:通過變(bian)量名的方(fang)式去訪(fang)問;
間接訪問:通過空間的首地址來訪問;
8、如果(guo)你(ni)想(xiang)通(tong)過(guo)一個(ge)函數改(gai)(gai)變另外(wai)一個(ge)函數中(zhong)的變量值,那么(me)你(ni)可以將(jiang)該變量的地址傳過(guo)去進行改(gai)(gai)變;
9、將(jiang)一個數(shu)組的(de)首地址賦值給數(shu)組指針
指針變量名(ming)(ming)=&數組名(ming)(ming)[0]; 指針變量名(ming)(ming)=數組名(ming)(ming);
10、指針的運算
對(dui)于不同(tong)數(shu)據(ju)類(lei)型(xing)的(de)兩個指(zhi)(zhi)針實行加(jia)減法運算是(shi)無意義的(de); 指(zhi)(zhi)針+n <===> 指(zhi)(zhi)針+n*sizeof(指(zhi)(zhi)針所指(zhi)(zhi)向的(de)數(shu)據(ju)類(lei)型(xing))
指(zhi)(zhi)針(zhen)-n <===> 指(zhi)(zhi)針(zhen)-n*sizeof(指(zhi)(zhi)針(zhen)所指(zhi)(zhi)向的數(shu)據類型)數(shu)組名+n<===>指(zhi)(zhi)針(zhen)+n<===>&數(shu)組名[n]<===>&指(zhi)(zhi)針(zhen)[n];
*(數組名(ming)+n)<===>*(指針+n)<===>數組名(ming)[n]<===>指針[n];
*指針變量名<===>數組[0];
11、對于一(yi)個(ge)數組(zu)(zu),不能(neng)數組(zu)(zu)名(地址(zhi)常量)自加一(yi)(數組(zu)(zu)名++)是錯(cuo)誤的(de)!
12、數(shu)組作為形參(can)時(shi),他只是一(yi)個指(zhi)針而(er)已
13、注意(yi)Makefile文件的(de)編(bian)輯;
14、注意使用(yong)gedit;
15、發(fa)生段錯誤表(biao)示(shi)可能操(cao)作了(le)空指針(zhen)或(huo)野(ye)指針(zhen);
16、NULL是一個(ge)保留地址,不可(ke)讀(du),不可(ke)寫; 指(zhi)針(zhen)指(zhi)向常(chang)量 指(zhi)針(zhen)就不可(ke)被修改
指針指向變量 指針就可被修改(gai)

17、指針數(shu)組

18、函數指針

19、 函(han)數指針數組


