(中職)計(jì)算機(jī)程序設(shè)計(jì)(C語言)第九章第2節(jié)教學(xué)課件工信版

上傳人:痛*** 文檔編號:249055267 上傳時(shí)間:2024-10-27 格式:PPT 頁數(shù):13 大?。?.01MB
收藏 版權(quán)申訴 舉報(bào) 下載
(中職)計(jì)算機(jī)程序設(shè)計(jì)(C語言)第九章第2節(jié)教學(xué)課件工信版_第1頁
第1頁 / 共13頁
(中職)計(jì)算機(jī)程序設(shè)計(jì)(C語言)第九章第2節(jié)教學(xué)課件工信版_第2頁
第2頁 / 共13頁
(中職)計(jì)算機(jī)程序設(shè)計(jì)(C語言)第九章第2節(jié)教學(xué)課件工信版_第3頁
第3頁 / 共13頁

下載文檔到電腦,查找使用更方便

10 積分

下載資源

還剩頁未讀,繼續(xù)閱讀

資源描述:

《(中職)計(jì)算機(jī)程序設(shè)計(jì)(C語言)第九章第2節(jié)教學(xué)課件工信版》由會員分享,可在線閱讀,更多相關(guān)《(中職)計(jì)算機(jī)程序設(shè)計(jì)(C語言)第九章第2節(jié)教學(xué)課件工信版(13頁珍藏版)》請?jiān)谘b配圖網(wǎng)上搜索。

1、單擊此處編輯母版標(biāo)題樣式,,單擊此處編輯母版文本樣式,,第二級,,第三級,,第四級,,第五級,,,*,YCF,(中職)計(jì)算機(jī)程序設(shè)計(jì)(C語言)第九章第2節(jié)教學(xué)課件工信版,第九章 指針與結(jié)構(gòu)體,9.2指針變量的應(yīng)用,,,9.2指針變量的應(yīng)用,9.2.1指針與數(shù)組,,9.2.2指針與字符串,,,9.2.3指針與函數(shù),,,,,9.2.1指針與數(shù)組,1、一維數(shù)組元素及數(shù)組元素的地址,,假設(shè)有一5個(gè)元素的a數(shù)組,則元素和地址分別可以表示如圖9-2-1,,,,,,2、用指針變量引用數(shù)組元素,,如:,,int *p ,x[10]={0,1,2,3,4,5,6,7,8,9};,,p=a;,,這里的指針變量

2、p的值是x數(shù)組的首地址,即為&x[0],p的值每增加1則自動(dòng)跳轉(zhuǎn)到下一個(gè)數(shù)組元素的地址。,,因此,x數(shù)組的第i個(gè)元素可表示為:a[i]、*(a+i)、*(p+i),其中*(p+i)為指針表示法;x數(shù)組的第i個(gè)元素的地址可表示為:&a[i]?、a+i、p+i,其中p+i為指針表示法。,,,3、指針變量在數(shù)組中的應(yīng)用,,【例9.9】將數(shù)組x中全部元素變成原來的2倍,再輸出x數(shù)組。,,(1) # include ,,(2) void main( ),,(3) {,,(4) int x[ ]={1,2,3,4,5};,,(5) int *p,i;,,(6) f

3、or (p=x;p

4、,(1)程序第6行中的p++不能用x++替換,因?yàn)閿?shù)組名x代表數(shù)組的起始地址,它是對于一個(gè)已經(jīng)定義的數(shù)組是不能改變的,即為一個(gè)地址常量,而指針變量p是一個(gè)指針變量;,,(2)程序第11行,不能省略,必須要把指針變量p的值重新拉回到數(shù)組x的首地址;,,(3)程序第13行,在使用指針變量時(shí)要注意地址的值不能超出數(shù)組元素的界限。,,,,9.2.2指針與字符串,,1、指向字符串的指針變量的定義,,如:,,char *p ="student";,,這里的賦值只是把字符串的首地址賦給p,而不是把字符串賦給p,p是一個(gè)指針變量,它不能存放一個(gè)字符串,只能存放一個(gè)地址。,,2、利用指針變量輸出字符串,,

5、如:,,char *p ="student";,,printf("%s\n",p);,,輸出字符串時(shí),從指針變量p所記錄的首地址開始依次向后輸出直到碰到字符口串結(jié)束符′\0′為止。,因此,也可以用循環(huán)來實(shí)現(xiàn)字符串中字符的逐個(gè)輸出,,如:,,char *p = "student";,,for (;*p!= ′\0′;p++),,printf("%c",*p);,,,,,3、字符數(shù)組與字符指針變量的區(qū)別,,如:,,char s[ ]= "I am a student. ";,,char *p= "I am a student. ";,,(1)系統(tǒng)分配空間不同:定義數(shù)組s時(shí),系統(tǒng)會給

6、s分配一片連續(xù)的存儲單元,而定義指針變量p時(shí),系統(tǒng)只給p分配一個(gè)存儲單元。,,(2)存儲方式不同:數(shù)組s中存放的是字符串中的字符和’\0’,而指針變量p中存放的是字符串的首地址。,,(3)賦值方式不同:,,數(shù)組可以進(jìn)行初始化,但不能使用賦值語句;,,如:,,char str1[10],str2[ ]= "great“;,,,4、字符串指針的應(yīng)用,,【例9.10】利用字符串指針實(shí)現(xiàn)兩個(gè)字符串的復(fù)制。,,# include ,,void main ( ),,{,,char *a= "tiger",*b= "dog";,,char *x=a,*y=b;,,puts(a);,,puts(b);,,w

7、hile (*y!= ′\0′),,{,,*x=*y;,,x++;,,y++;,,},,*x=′\0′;,,puts(a);,,puts(b);,,},,分析如圖9-2-2,x,x++,x++,x++,y,y++,y++,y++,\0,g,o,d,t,i,g,e,r,\0,a,b,圖9-2-2,,,9.2.3指針與函數(shù),,1、指針變量作函數(shù)的參數(shù),,【例9.11】編程實(shí)現(xiàn)兩個(gè)整型變量值的交換(要求用函數(shù)swap( )實(shí)現(xiàn)兩數(shù)值的交換)。,,# include ,,void swap(int *a,int *b),,{,,int t;,,t=*a;,,*a=*b;,,*b=t;,,},,vo

8、id main( ),,{,,int x,y ;,,int *p1,*p2;,,p1=,,p2=,,x=5;,,y=10;,,swap(p1,p2);,,printf("x=%d\ty=%d\n",x,y);,,},,程序中在調(diào)用swap( )函數(shù)時(shí)將變量x和y的地址分別傳遞給了指針變量a和b,形參和實(shí)參之間的傳遞關(guān)系為“地址傳遞”,即實(shí)參隨著形參的改變而改變。,程序運(yùn)行結(jié)果:,,x=10 y=5,,,實(shí)現(xiàn)了x和y值的交換功能。,,,,2、指針變量作函數(shù)的返回量,,我們在前面用到的函數(shù)中的返回值的數(shù)據(jù)類型主要有int ,float ,char ,double等,還可以無返回值即返回值

9、類型為void,函數(shù)的返回值其實(shí)也可以是一個(gè)指針類型的數(shù)據(jù)(即地址)。,,若函數(shù)的返回值是一個(gè)指針類型的數(shù)據(jù),則函數(shù)的定義格式如下:,,數(shù)據(jù)類型 *函數(shù)名(形參表列),,{,,函數(shù)體;,,},如:,,int *fun(int x, int y),,{,,……,,},,,,【例9.12】在一個(gè)字符型數(shù)組中存放兩個(gè)字符串,分別用兩個(gè)指針變量記錄它們的首地址(每個(gè)字符串的首地址的值由一個(gè)指針函數(shù)返回),分別輸出字符型數(shù)組和兩個(gè)字符串的首地址的值及兩個(gè)字符串和字符型數(shù)組中已被賦好的字符。,,# include ,,# include ,,# define SIZE 100,,char

10、buf[SIZE];,,char *p=buf;,,char *alloc(int n),,{,,char *begin;,,if (p+n<=buf+ SIZE),,{,,begin=p;,,p=p+n;,,return(begin);,,},,else,,return(NULL);,,},,void main ( ),,{①③②p2= buf+10pp1=bufbuf[1]buf[0]buf[99]…buf[15]buf[14]buf[13]…buf[10]buf[9]…buf[8]…21\0d…a\09圖9-2-3,,char *p1,*p2;,,int i;,,p1=al

11、loc(10);,,strcpy(p1, "123456789");,,p2=alloc(5);,,strcpy(p2, "abcd");,,printf("buf=%p\n",buf);,,printf("p1=%p\n",p1);,,printf("p2=%p\n",p2);,,puts(p1);,,puts(p2);,,for (i=0;i<15;i++),,printf("%c",buf[i]);,,},,,分析如圖9-2-3所示,,說明:(1)格式字符串%p輸出變量的內(nèi)存地址。,,(2)buf數(shù)組的輸出在這里不能用%s,若用%s,,只能輸出p1所指的字符串。,,用for (i=0;i<15;i++) printf("%c",buf[i]);,,可將兩個(gè)字符串都輸出。,,程序運(yùn)行結(jié)果:,,buf=00427E64,,p1=00427E64,,p2=00427E6E,,123456789,,abcd,,123456789 abcd,①,③,②,p2= buf+10,p,p1=buf,buf[1],,buf[0],buf[99],,…,,buf[15],,buf[14],,buf[13],,…,,buf[10],,buf[9],,…,,,buf[8],,…,,2,1,,,,\0,d,…,,a,\0,9,圖9-2-3,,,

展開閱讀全文
溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網(wǎng)安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!