C語言程序設(shè)計(jì)經(jīng)典教程 class8

C語言程序設(shè)計(jì)經(jīng)典教程 class8

ID:43082815

大小:1.10 MB

頁數(shù):24頁

時(shí)間:2019-09-29

C語言程序設(shè)計(jì)經(jīng)典教程 class8_第1頁
C語言程序設(shè)計(jì)經(jīng)典教程 class8_第2頁
C語言程序設(shè)計(jì)經(jīng)典教程 class8_第3頁
C語言程序設(shè)計(jì)經(jīng)典教程 class8_第4頁
C語言程序設(shè)計(jì)經(jīng)典教程 class8_第5頁
資源描述:

《C語言程序設(shè)計(jì)經(jīng)典教程 class8》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。

1、1第八章指針主要內(nèi)容8.1指針和指針變量8.2指針與數(shù)組8.3字符串的指針重點(diǎn)熟練掌握指針的定義和引用;掌握用指針來處理數(shù)組;掌握用指針來處理字符。2A直接BA間接預(yù)備知識(shí)直接和間接的含義內(nèi)存即內(nèi)部存儲(chǔ)器,是由內(nèi)存單元組成特點(diǎn)存儲(chǔ)單元的最小單位為字節(jié)存儲(chǔ)單元是線性連續(xù)的…………3內(nèi)存計(jì)算機(jī)的內(nèi)存中的每一個(gè)字節(jié)都有一個(gè)編號(hào)每一內(nèi)存單元具有唯一的內(nèi)存地址系統(tǒng)為每一個(gè)已定義的變量分配一定存儲(chǔ)空間>>使變量名與內(nèi)存的一個(gè)地址相對(duì)應(yīng)通過地址就能夠訪問該地址所標(biāo)識(shí)的存儲(chǔ)單元程序處理過程根據(jù)地址取出變量所對(duì)應(yīng)

2、的內(nèi)存單元中存放的值參與計(jì)算/操作處理結(jié)果存入相應(yīng)的變量名所對(duì)應(yīng)的內(nèi)存單元…………0123…2000地址45變量內(nèi)容4高級(jí)語言中的變量具有三個(gè)屬性變量的名變量的值變量的地址編程者使用c程序的一個(gè)變量定義變量的數(shù)據(jù)類型數(shù)據(jù)類型決定了一個(gè)變量在內(nèi)存中所占用的存儲(chǔ)空間的大小變量在內(nèi)存中總是占用幾個(gè)連續(xù)的字節(jié)定義變量名C語言的編譯系統(tǒng)會(huì)根據(jù)變量的數(shù)據(jù)類型為該變量分配內(nèi)存單元確定變量的地址變量的地址就是為變量分配的內(nèi)存單元的起始編號(hào)通過變量名對(duì)內(nèi)存中變量對(duì)應(yīng)的地址進(jìn)行操作C語言如何處理?5指針的概念int

3、a,b,c;a=10;b=20;c=a+b;100010021004內(nèi)存abc102030正常解釋實(shí)際情況100010021004內(nèi)存變量名內(nèi)存單元的起始地址長度內(nèi)存地址與變量對(duì)照表abc1000210022100421020102030在使用變量時(shí)總要去查表,降低了運(yùn)行效率,也頗感不便。解決方案p1000這是變量a的地址這是變量,存放的是變量a的地址——指針變量。8.1指針和指針變量6指針變量的定義一般形式為:類型符*指針變量名;如:int*p;int*q,*r;floata,*b;char*

4、s1,s2;p、q、r、b、s1均為指針變量;a、s2為普通變量。約定:指針變量的圖形表示,如:int*p;普通變量的圖形表示,如:inta;↙pa7指針變量的引用兩種基本的指針運(yùn)算:&:取變量的地址*:指針運(yùn)算符(或稱“間接訪問”運(yùn)算符)如:inta=10,*p;p=&a;printf(“%d,%d”,a,*p);輸出:10,10↙10pa&a直接訪問間接訪問8[例8.1]通過指針變量存取變量的值。main(){inta,b;int*p1,*p2;printf(“a=%d,b=%d”,a,

5、b);printf(“*p1=%d,*p2=%d”,*p1,*p2);}a=10;b=20;p1=&a;p2=&b;p1=&a;p2=&b;a=10;b=20;程序1程序2程序3程序4p1=&a;p2=&b;*p1=10;*p2=20;*p1=10;*p2=20;p1=&a;p2=&b;ab↙p1↙p21020&a&b1020&a&b1020&a&b???!!!!使用指針之前,一定要使指針有明確指向。!指針變量未存儲(chǔ)確定地址時(shí),不能使用,否則會(huì)造成系統(tǒng)的崩潰!9[例8.2]輸入a和b兩個(gè)數(shù),

6、按先大后小的順序輸出,a和b的值不變。main(){inta,b,*p1,*p2,*p;scanf(“%d,%d”,&a,&b);p1=&a;p2=&b;if(a

7、組元素,每個(gè)數(shù)組元素都在內(nèi)存中占用存儲(chǔ)單元,它們都有相應(yīng)的地址,這個(gè)地址就可以用指針來實(shí)現(xiàn)存儲(chǔ)。如有:inta[5];int*p,*q;p=&a[0];q=&a[2];*p=5;*q=8;a[0]a[1]a[2]a[3]a[4]p↙↙q&a[0]&a[2]5811C語言規(guī)定:數(shù)組名代表數(shù)組的首地址,也就是第一個(gè)元素a[0]的地址。因此:a?&a[0]。若:p=a;/*或?qū)懗蓀=&a[0];*/則:p+1?&a[1]*(p+1)?a[1]p+i?&a[i]*(p+i)?a[i]實(shí)際上,C語言編譯系

8、統(tǒng)在處理下標(biāo)變量時(shí),要把它轉(zhuǎn)換成地址法的形式。p+1指向數(shù)組的下一個(gè)元素a[0]a[1]a[2]a[3]a[4]app+1a[i]?*(a+i)*(p+i)?p[i]12引用一個(gè)數(shù)組元素,可以用下標(biāo)法或指針法。通過數(shù)組的起始地址計(jì)算數(shù)組元素的地址,即*(a+i)或*(p+i)形式。用指針變量處理數(shù)組元素,即p++形式:main(){inta[5]={3,8,9,2,6},i,*p;p=a;for(i=0;i<5;i++){printf(“%d“,*p);p++;}}↙38926api0輸出結(jié)果:

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無此問題,請(qǐng)放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭議請(qǐng)及時(shí)聯(lián)系客服。
3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請(qǐng)聯(lián)系客服處理。