freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

[理學(xué)]c語(yǔ)言第8章-資料下載頁(yè)

2024-12-08 00:44本頁(yè)面
  

【正文】 字符串的首地址。指向字符串的指針數(shù)組的初始化更為簡(jiǎn)單。例如: char *weekday[7]= {Sunday,Monday,Tuesday,Wednesday, Thursday,Friday,Saturday}。 它們?cè)趦?nèi)存中存儲(chǔ)結(jié)構(gòu)如圖 816所示: 73 C語(yǔ)言程序設(shè)計(jì) 第 8章 指針 例 820 編寫一程序,用星期的英文名稱初始化一個(gè)字符指針數(shù)組,鍵入一個(gè)整數(shù),當(dāng)該數(shù)在 0~ 6時(shí),輸出對(duì)應(yīng)的星期的英文,否則顯示錯(cuò)誤信息。輸入 0,輸出星期日。用指針數(shù)組實(shí)現(xiàn)。 include main( ) { int day。 char * week_day[7]= {sunday,monday,tuesday,wednesday,thursday, friday, saturday}。 printf(Enter day: )。 scanf(%d, amp。day)。 if(day=0 amp。amp。 day7) printf(The day is :%s\n,week_day[day])。 else printf(Input error!\n)。} C語(yǔ)言程序設(shè)計(jì) 第 8章 指針 ? 一個(gè)指針可以指向任何一種數(shù)據(jù)類型,包括指向一個(gè)指針。當(dāng)指針變量 p中存放另一個(gè)指針 q的地址時(shí),則稱 p為指針型指針,也稱多級(jí)指針。指針型指針的定義形式為: 類型標(biāo)識(shí)符 ** 指針變量名 。 ? 由于指針變量的類型是被指針?biāo)傅淖兞康念愋?,因此,上述定義中的類型標(biāo)識(shí)符應(yīng)為:被指針型指針?biāo)傅闹羔樧兞克傅哪莻€(gè)變量的類型。 75 C語(yǔ)言程序設(shè)計(jì) 第 8章 指針 ? 為指針型指針初始化的方式是用指針的地址為其賦值,例如 int x 。 /* 定義整型變量 x */ int *p。 /* 定義指向整型變量的指針 p */ int **q。 /* 定義多級(jí)指針 q */ ? 若有: p=amp。x。 /* 指針 p指向變量 x */ 則在程序中,使用 *p等價(jià)與使用 x,成為對(duì) x的間接訪問(wèn)。對(duì)二級(jí)指針若有: q=amp。p 則:使用 *q,即間接訪問(wèn)二級(jí)指針等價(jià)于使用 p。再次間接訪問(wèn)二級(jí)指針: 則有: **q = *(*q) = *p = x 76 C語(yǔ)言程序設(shè)計(jì) 第 8章 指針 例 821 分析程序運(yùn)行結(jié)果: include main ( ) { int x=10, *p=amp。x。 int **q=amp。p。 printf(x=%d,*p=%d,**q=%d\n,x,*p,**q)。 } C語(yǔ)言程序設(shè)計(jì) 第 8章 指針 例 822 使用二級(jí)指針引用字符串。 include define SIZE 7 main( ) { int i。 char * week_day[7]= {Sunday,Monday,Tuesday,Wednesday, Thursday, Friday, Saturday}。 char **p。 for ( i=0。 iSIZE。 i++ ) { p = week_day+i。 printf (%s , *p)。} printf(“\n”)。} C語(yǔ)言程序設(shè)計(jì) 第 8章 指針 79 例 823 使用指針,編寫程序,要求輸入一個(gè)字符串,求串長(zhǎng),求串長(zhǎng)函數(shù)用遞歸方法實(shí)現(xiàn)。 首先設(shè)計(jì)遞歸算法。假設(shè)函數(shù) strlen的參數(shù)為指向字符串首地址的指針 s,則: ①若指針 s的當(dāng)前字符為 39。\039。,則 s的串長(zhǎng)為 0; ②將串 s分為兩部分:第 1個(gè)字符和除第 1個(gè)字符之外的其它部分; ③則有: 串長(zhǎng) = 1 + 除第 1個(gè)字符之外的其余部分的長(zhǎng)度 include int strlen ( char * s ) /* s為指向字符串的指針 */ { if ( *s == 39。\039。 ) return (0)。 else return ( 1+strlen( s+1 ) )。} main ( ) { char a[30],*string=a。 printf(Please input a string:)。 gets(string)。 printf(String =%s,length=%d\n,string,strlen(string))。 } C語(yǔ)言程序設(shè)計(jì) 第 8章 指針 80 例 824 輸入兩個(gè)已經(jīng)按從小到大順序排列好的字符串,編寫一個(gè)合并兩個(gè)字符串的函數(shù),使合并后的字符串,仍然是從小到大排列。 include main ( ) { char str1[80], str2[80], str[80]。 char *p, *q, *r, *s。 int i, j, n。 printf (Enter string1:)。 gets ( str1 )。 printf (Enter string2:)。gets ( str2 )。 for ( p=str1, q=str2, r=str。 *p!= 39。\039。 amp。amp。 *q!= 39。\039。 ) if ( *p *q ) *r++ = *p++。 else *r++ = *q++。 s = ( *p!=39。\039。 ) ? p : q。 while ( *s != 39。\039。 ) *r++ = *s++。 *r = 39。\039。 printf (Result:)。puts ( str )。} C語(yǔ)言程序設(shè)計(jì) 第 8章 指針 ? ,如 int i,*p。 p=i。 由于 i是整型,而 p是指向整型的指針,它們的類型并不相同, p所要求的是一個(gè)指針值,即一個(gè)變量的地址,因此應(yīng)該寫做 p=amp。i。 81 C語(yǔ)言程序設(shè)計(jì) 第 8章 指針 ? ,如 char *str。 scanf(“%s”,str)。 這里 str沒有具體的指向,接收的數(shù)據(jù)是不可控制的,應(yīng)該特別記住:指針不是數(shù)組!上面的語(yǔ)句可改為 char c[80],*str。 str=c。 scanf(“%s”,str)。 82 C語(yǔ)言程序設(shè)計(jì) 第 8章 指針 ? 由于看到字符指針指向字符串的寫法,如 char *str。 str=”This is a string!”。 就以為字符數(shù)組也可以如此,寫做 char s[80]。 s=”This is a string!”。 這是錯(cuò)誤的。 C語(yǔ)言不允許同時(shí)操作整個(gè)數(shù)組的數(shù)據(jù),這時(shí),可以用字符串拷貝函數(shù)完成: strcpy(s,”This is a string!”)。 83 C語(yǔ)言程序設(shè)計(jì) 第 8章 指針 ? ,卻沒有用指針,如 int a=5,b=10。 swap(a,b)。 printf(“%d, %d”,a,b)。 … void swap(int x,int y){ … } 由于 C語(yǔ)言的參數(shù)都是值傳遞,要想得到被調(diào)函數(shù)中的結(jié)果就需要使用指針,如 swap(amp。a,amp。b)。 printf(“%d, %d”,a,b)。 … void swap(int *x,int *y){ … } 84 C語(yǔ)言程序設(shè)計(jì) 第 8章 指針 ? ,如 int *l,*r,*x。 x=(l+r)/2。 由于 l和 r都是指針,它們不能相加。 85 C語(yǔ)言程序設(shè)計(jì) 第 8章 指針 ? ,如 int a[10],i,*p。 p=a。 for(i=0。i10。i++) { scanf(“%d”,p)。 p++。} for(i=0。i10。i++) { printf(“%5d”,p)。 p++。} 第一個(gè) for循環(huán)已使指針 p移出了數(shù)組 a的范圍,第二個(gè) for循環(huán)操作時(shí) p始終處在數(shù)組 a之外。使用指針操作數(shù)組元素時(shí),應(yīng)隨時(shí)注意不要讓指針越界。上面程序可以在兩個(gè) for循環(huán)之間加上一句 p=a。 使 p重新指向數(shù)組 a的開始處。 86 C語(yǔ)言程序設(shè)計(jì) 第 8章 指針 本章小結(jié) ? 1.指針變量的定義和賦值。 ?( 1) 指針實(shí)際上就是存儲(chǔ)單元的地址,因而所有的指針變量所需要的存儲(chǔ)空間都相同。為了進(jìn)行區(qū)分,只有通過(guò)指向存儲(chǔ)單元中存放的數(shù)據(jù)類型來(lái)區(qū)分指針變量。 ?( 2)在定義指針變量時(shí),一個(gè)“ *”只能定義一個(gè)指針變量。在使用指針變量之前,要先為指針變量賦值,一般是將變量的地址賦給它,讓它指向變量;或?qū)?shù)組名、函數(shù)名賦給指針變量,讓它指向數(shù)組或函數(shù)。 C語(yǔ)言程序設(shè)計(jì) 第 8章 指針 本章小結(jié) ? 2.指針變量的使用及指針運(yùn)算。 ? ( 1)對(duì)于指針變量必須遵循“先賦值后使用”的原則。指針變量的使用主要是通過(guò)指針去訪問(wèn)所指向的對(duì)象。 ? ( 2)指針運(yùn)算符“ amp。”和“ *”。取地址運(yùn)算符“ amp?!保韩@取變量的地址,一般給指針變量賦值;引用目標(biāo)運(yùn)算符“ *”:通過(guò)指針實(shí)現(xiàn)對(duì)所指對(duì)象的訪問(wèn)。 ? ( 3)指針加減運(yùn)算與關(guān)系運(yùn)算。一般對(duì)指向數(shù)組的指針使用,用于完成對(duì)數(shù)組中元素的訪問(wèn)。指針的這些運(yùn)算在計(jì)算時(shí)并不是以字節(jié)為單位,而是以所指向目標(biāo)占用的存儲(chǔ)單元為單位。 C語(yǔ)言程序設(shè)計(jì) 第 8章 指針 本章小結(jié) ? 3.指針與數(shù)組的關(guān)系。 ?數(shù)組名本身就代表數(shù)組存儲(chǔ)空間的首地址,因而可以通過(guò)指向數(shù)組的指針來(lái)完成對(duì)數(shù)組元素的訪問(wèn)。可以通過(guò)下標(biāo)方式、偏移量方式、指針遍歷方式實(shí)現(xiàn)對(duì)數(shù)組元素的訪問(wèn)。對(duì)于指向數(shù)組的指針,要注意它們之間的等價(jià)關(guān)系。 C語(yǔ)言程序設(shè)計(jì) 第 8章 指針 本章小結(jié) ? 4.指針與函數(shù)之間的關(guān)系。 ?( 1)將指針作為函數(shù)參數(shù)是在函數(shù)中使用指針的常用方式。通過(guò)將指針作為函數(shù)參數(shù)來(lái)解決函數(shù)只能返回一個(gè)值的局限,這時(shí)實(shí)參一般是變量的地址或數(shù)組名。 ?( 2)也可將指針作為函數(shù)的返回類型。這時(shí)要求不能將函數(shù)體中局部變量的地址作為返回值。 ?( 3)由于函數(shù)名本身就代表指向函數(shù)代碼段的首地址,因而可以定義指向函數(shù)的指針,將函數(shù)名賦值給它,通過(guò)它完成函數(shù)調(diào)用。 C語(yǔ)言程序設(shè)計(jì) 第 8章 指針 91 謝 謝!
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1