版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、-. z.指針及其應(yīng)用關(guān)于指針的考點(diǎn)1224分:指針與指針變量的概念、指針與地址運(yùn)算符。變量、數(shù)組、字符串、函數(shù)、構(gòu)造體的指針,以及指向變量、數(shù)組、字符串、函數(shù)、構(gòu)造體的指針變量,通過(guò)指針引用以上各類型數(shù)據(jù)。用指針作函數(shù)參數(shù)。返回指針值的指針函數(shù)。指針數(shù)組、指向指針的指針。main函數(shù)的命令行參數(shù)。知識(shí)點(diǎn)歸納:1指針與指針變量的概念。1指針:就是內(nèi)存中的一個(gè)存儲(chǔ)單元的地址,即內(nèi)存單元的編號(hào)。2指針變量:是一個(gè)能存放地址值的變量。通過(guò)它存放的地址值能間接訪問(wèn)它所指向的變量。2指針變量的定義。類型名 *指針變量名類型說(shuō)明中可取C語(yǔ)言的有效類型,* 表示為指針型變量。如:char *c1,*c2;表
2、示c1與c2是指針變量,其基類型是字符型。注意:指針的基類型與其所指向的變量的類型要統(tǒng)一。3.指針變量的使用方法1使指針變量指向*個(gè)變量,即將*變量的地址值賦給指針變量例:int *; int *p=&*; 或 int *,*p; p=&*;2用間址運(yùn)算運(yùn)算符為*訪問(wèn)所指變量,例:*p=5;/用作左值時(shí)代表所指的變量*=*p+9;/用作右值時(shí)代表所指變量的值注意:指針變量在使用之前一定要指向*變量,而不能用常數(shù)直接賦值4指針運(yùn)算的優(yōu)先級(jí)與結(jié)合性主要涉及*、&、+、- -。單目運(yùn)算符優(yōu)先級(jí)是一樣的,但從右向左結(jié)合。重點(diǎn)理解:1*&a等同于a;&*p等同于&a。2*p+等同于*p+3*+p等同于*
3、(+p)4*p+與*p+的區(qū)別。*p+是變量值增值,相當(dāng)于a+;而*p+則是用完當(dāng)前值后,指針值增值,即相當(dāng)于a, p+,是指向了新的地址。5指針與一維數(shù)組整型數(shù)組1數(shù)組的地址:即數(shù)組中首個(gè)元素a0的地址。2數(shù)組地址的表示方法: (1)用數(shù)組名a,(2)取首元素的地址,即&a03數(shù)組指針:指向數(shù)組的指針變量的簡(jiǎn)稱,即指針變量中存放的是*數(shù)組的首地址。例,假設(shè)有 int a10,*p;p=&a;則可稱p為a數(shù)組的指針,或稱p指向數(shù)組a。4指針與數(shù)組的關(guān)系:通過(guò)移動(dòng)指針使其指向不同的數(shù)組元素p,p+1,(p+2),(p+9) 等同于 &a0,&a1,&a2,&a9。*p,*p+1,*(p+2),*
4、(p+9) 等同于a0,a1,a2,a9。5總結(jié):一維數(shù)組元素的合法引用方式方式一,數(shù)組名下標(biāo),例如 a0,a1,方式二,指針名下標(biāo),例如 p0,p1,方式三,*指針名+下標(biāo),例如 *p,*(p+0),*(p+1),方式四,*數(shù)組名+下標(biāo),例如 *a,*(a+0),*(a+1),在C中,數(shù)組名就是第一個(gè)元素的地址,因此對(duì)數(shù)組的引用可以直接用*a表示a0,用*(a+1)表示a1,用*(a+2)表示a2,用*(a+9)表示a9。6.數(shù)組名或數(shù)組指針作函數(shù)參數(shù)屬于數(shù)組、指針、函數(shù)的綜合應(yīng)用,注意函數(shù)調(diào)用時(shí)傳值和傳址的區(qū)別:1形參為普通變量時(shí)是傳值調(diào)用2形參為指針變量時(shí)是傳址調(diào)用例1:傳值調(diào)用形參為普
5、通變量,調(diào)用后形參不會(huì)影響實(shí)參#include void fun(int a,int b)a+;b+;void main() int *=3,y=4,z;fun(*,y); printf(%d,%dn,*,y);例2:傳址調(diào)用形參為指針,調(diào)用后形參值影響實(shí)參#include void fun(int *a,int *b) (*a)+; (*b)+; void main() int *=3,y=4,z; fun(&*,&y); printf(%d,%dn,*,y);例3 傳址調(diào)用形參為指針,可利用此類形參返回多個(gè)結(jié)果#include void fun(int a,int b, int *c,in
6、t* d) *c=a+b; *d=a*b;void main() int *=3,y=4,k,j; fun(*,y,&z,&j); printf(%d,%dn,k,j);例4 傳址調(diào)用形參為數(shù)組名#include void fun(int b,int i) bi=0; void main() int a10=0,1,2,3,4,5,6,7,8,9, i;fun(a,5); for (i=0;i10;i+) printf(%d,ai);7指針與一維數(shù)組字符數(shù)組用指針?lè)绞脚c用字符數(shù)組方式操作字符串的區(qū)別:1存儲(chǔ)方式不同。字符數(shù)組由假設(shè)干個(gè)元素組成,每個(gè)元素中放一個(gè)字符,而字符指針變量中存放的是地址
7、字符串首個(gè)字符的地址,決不是將字符串放到字符指針變量中。2賦值方式不同。對(duì)字符數(shù)組只能對(duì)各個(gè)元素賦值,不能用以下方法對(duì)字符數(shù)組賦值。 char str20;str=Good luck!; 而對(duì)字符指針變量,可以采用下面方法賦值: char *str;str=Good luck!;賦給str的不是字符,而是字符串第一個(gè)元素的地址。3輸入方式不同。對(duì)字符數(shù)組可用如下方式賦值:char str20;scanf(%s,str); /ok但對(duì)字符指針變量則不建議用此方式,因?yàn)闀?huì)發(fā)生指針的異常指向,正確做法為:char *str,a20;str=a; /使指針有明確的指向scanf(%s,str);4字符
8、指針變量的值是可以改變的,而字符數(shù)組名的值是不可以改變的。例1:#include void main() char *str=Good luck!; puts(str);str+=5;/ok puts(str);例2:#include void main() char str20=Good luck!; puts(str);str+=5;/error! puts(str);8. 指針與二維數(shù)組整型、字符型1二維數(shù)組的按行存儲(chǔ)假設(shè)有 int a23=1,2,3,4,5,6,*p=a; 則*(p+4)=a11=52二維數(shù)組元素的地址表示及訪問(wèn)方式設(shè)int a23,*p;p=&a;可見(jiàn)a是23的數(shù)組
9、,含有6 個(gè)元素。可認(rèn)為a有兩個(gè)元素:a0和a1;而a0與a1又分別是具有三個(gè)元素的一維數(shù)組。aa0所含元素為: a00,a01,a02;a1所含元素為: a10,a11,a12(可以記憶為:二維數(shù)組a含有二個(gè)行元素,每個(gè)行元素又含有3個(gè)列元素)因此對(duì)于二維數(shù)組a,a0即&a00,也就是第0行的首地址。a1就是&a10,也就是第一行的首地址。由地址運(yùn)算規(guī)則,a0+0就是&a00,a0+1就是&a01,a0+2就是&a02。所以一般地:ai+j=&aij.在二維數(shù)組中,可以用指針表示數(shù)組元素的地址,如:ai+j=&aij也可寫為*(a+i)+j=&aij,從而可知,*(*(a+i)+j)就是ai
10、j,即aij= *(*(a+i)+j)。8函數(shù)與指針1指針作為函數(shù)參數(shù)知識(shí)點(diǎn)62函數(shù)的返回值為指針類型定義方式為:類型 *函數(shù)名 ;例:#include int z;int*fun(int *,int y) z=*+y; return &z;void main() int a=3,b=4; int *c; c=fun(a,b); printf(%dn,*c);3指向函數(shù)的指針變量定義方式為:類型 *變量名;這里變量名前一個(gè)*號(hào),說(shuō)明該變量是指針變量,而后面有括號(hào)說(shuō)明這個(gè)指針變量是指向函數(shù)的。如:int *p1( ); 說(shuō)明p1是指針變量,這個(gè)指針變量是指向函數(shù)的。9指針數(shù)組與指向一維數(shù)組的指針
11、變量1指針數(shù)組:一個(gè)數(shù)組,它的元素都為指針類型。定義方式為:類型說(shuō)明 *數(shù)組名整型常量表達(dá)式如:char *s4;則定義了一個(gè)指針數(shù)組,即s0,s1,s2,s3均用來(lái)存放地址值,主要用于處理多個(gè)字符串。2指向一維數(shù)組的指針:一個(gè)指針,指向一個(gè)一維數(shù)組定義形式是:類型說(shuō)明 *變量整型常量表達(dá)式如:int (*p)4;定義p為指針變量,它指向的是一個(gè)具有四個(gè)元素的一維數(shù)組。10指向指針的指針指向指針的指針也就是二級(jí)指針。定義方式如下:類型說(shuō)明 *指針變量名即定義一個(gè)二級(jí)指針變量,類型說(shuō)明是它指向的指針變量所指向的變量的數(shù)據(jù)類型。它所指向的指針變量稱為一級(jí)指針變量。賦值形式為:二級(jí)指針變量=&一級(jí)指
12、針變量;這類似于*三有李四的地址,而王五有*三的地址,這樣王五通過(guò)*三找到李四。這樣*三是一級(jí)指針,而王五是二級(jí)指針。例如:#include void mainchar *name=Follow me,BASIC,Great Wall,F(xiàn)ORTRAN,puter design; char *;int ; fori=0;i1) +argv;printf(%sn,argv; argc; 在DOS命令狀態(tài)下輸入的命令行為:file1 China Beijing則執(zhí)行以上命令行將會(huì)輸出以下信息:ChinaBeijing11.有關(guān)指針的數(shù)據(jù)類型的小結(jié)定義含義int ;定義整型變量int *p;為指向整型數(shù)據(jù)的指針變
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年新鄉(xiāng)市誠(chéng)城卓人學(xué)校教師招聘?jìng)淇碱}庫(kù)及參考答案詳解1套
- 2026年武漢某國(guó)有企業(yè)招聘?jìng)淇碱}庫(kù)及答案詳解一套
- 安徽醫(yī)科大學(xué)出版中心2026年度公開招聘編輯人員備考題庫(kù)及參考答案詳解1套
- 合作社生產(chǎn)制度
- 惠泉公司生產(chǎn)管理制度
- 美國(guó)生產(chǎn)工人制度
- 棉花安全生產(chǎn)制度
- 二安全生產(chǎn)檢查制度
- 生產(chǎn)車間上班規(guī)章制度
- 工業(yè)氣體生產(chǎn)企業(yè)制度
- 2026年內(nèi)蒙古白音華鋁電有限公司招聘?jìng)淇碱}庫(kù)帶答案詳解
- 2025年玉溪市市直事業(yè)單位選調(diào)工作人員考試筆試試題(含答案)
- 2026年游戲AB測(cè)試實(shí)施方法含答案
- 2025湖南湘西鶴盛原煙發(fā)展有限責(zé)任公司招聘擬錄用人員筆試歷年備考題庫(kù)附帶答案詳解
- 江蘇省2025年普通高中學(xué)業(yè)水平合格性考試英語(yǔ)試卷(含答案)
- 枕骨骨折的護(hù)理課件
- GB/T 26951-2025焊縫無(wú)損檢測(cè)磁粉檢測(cè)
- 腹部手術(shù)圍手術(shù)期疼痛管理指南(2025版)課件
- 呼吸康復(fù)科普脫口秀
- 2025年《思想道德與法治》期末考試題庫(kù)及答案
- 2025初一英語(yǔ)閱讀理解100篇
評(píng)論
0/150
提交評(píng)論