結(jié)構(gòu)體指針、結(jié)構(gòu)體做函數(shù)參數(shù).ppt

結(jié)構(gòu)體指針、結(jié)構(gòu)體做函數(shù)參數(shù).ppt

ID:52135425

大?。?16.00 KB

頁(yè)數(shù):11頁(yè)

時(shí)間:2020-04-01

結(jié)構(gòu)體指針、結(jié)構(gòu)體做函數(shù)參數(shù).ppt_第1頁(yè)
結(jié)構(gòu)體指針、結(jié)構(gòu)體做函數(shù)參數(shù).ppt_第2頁(yè)
結(jié)構(gòu)體指針、結(jié)構(gòu)體做函數(shù)參數(shù).ppt_第3頁(yè)
結(jié)構(gòu)體指針、結(jié)構(gòu)體做函數(shù)參數(shù).ppt_第4頁(yè)
結(jié)構(gòu)體指針、結(jié)構(gòu)體做函數(shù)參數(shù).ppt_第5頁(yè)
資源描述:

《結(jié)構(gòu)體指針、結(jié)構(gòu)體做函數(shù)參數(shù).ppt》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫(kù)。

1、第8章用戶自定義數(shù)據(jù)類型——指針與結(jié)構(gòu)8.5.1指向結(jié)構(gòu)體變量的指針變量在定義一個(gè)結(jié)構(gòu)體變量時(shí),系統(tǒng)將在內(nèi)存中分配一塊連續(xù)的存儲(chǔ)空間,用于存放結(jié)構(gòu)體成員的數(shù)據(jù),這塊連續(xù)存儲(chǔ)空間的首地址稱為結(jié)構(gòu)體變量的指針(也稱為結(jié)構(gòu)體變量的首地址)??梢远x指向結(jié)構(gòu)體變量的指針變量,若把某結(jié)構(gòu)體變量的首地址賦值給一個(gè)指針變量,則稱這一指針變量指向該結(jié)構(gòu)體變量。指向結(jié)構(gòu)體的指針變量定義格式是:struct類型名*指針變量名;第8章用戶自定義數(shù)據(jù)類型——指針與結(jié)構(gòu)如下面定義一個(gè)結(jié)構(gòu)體類型booktp來(lái)存儲(chǔ)書(shū)的基本信息:structbooktp{charname[60];charauthor[30];

2、floatprice;structdatetp{unsignedyear;unsignedmonth;}pubday;};可以定義結(jié)構(gòu)體變量和指向結(jié)構(gòu)體變量的指針:structbooktpbook5,*p;第8章用戶自定義數(shù)據(jù)類型——指針與結(jié)構(gòu)以上定義了p為指向結(jié)構(gòu)體變量的指針變量。若p=&book5;,則稱指針變量p指向結(jié)構(gòu)體變量book5,此時(shí)可用下述三種方式之一存取結(jié)構(gòu)體成員(三種方式是等價(jià)的):1.結(jié)構(gòu)體變量名.成員名2.指針變量名->成員名3.(*指針變量名).成員名其中“->”是指向運(yùn)算符.如有下面程序段:structbooktp*p,book5={“C++Buide

3、r網(wǎng)絡(luò)開(kāi)發(fā)實(shí)例”,”清漢計(jì)算機(jī)工作室”,53,{2000,9}};p=&book5;則book5.price、p->price以及(*p).price的值都是53.0,而book5.pubday.year、p->pubday.year以及(*p).pubday.year的值都是2000。注意此處(*p),price的圓括號(hào)不能少.指針運(yùn)算符“*”作用于指針變量p上,構(gòu)成表達(dá)式(*p),等價(jià)于結(jié)構(gòu)體變量名book5。第8章用戶自定義數(shù)據(jù)類型——指針與結(jié)構(gòu)8.5.2指向結(jié)構(gòu)體數(shù)組的指針變量指向結(jié)構(gòu)體的指針變量也可以指向結(jié)構(gòu)體數(shù)組及其元素。例如,下述程序段:structbooktp*p

4、,book[3];p=book;如圖8.20所示,圖中假定book[0]的地址是3000,指針變量p指向結(jié)構(gòu)體數(shù)組book的首地址,由于sizeof(structbooktp)的值為98,每個(gè)結(jié)構(gòu)體元素占內(nèi)存空間98個(gè)字節(jié),因此p+l指向地址3098處,p+2指向地址3196處。98個(gè)字節(jié)98個(gè)字節(jié)98個(gè)字節(jié)pp+1p+2300030983196book[0]book[1]book[2]圖8.20第8章用戶自定義數(shù)據(jù)類型——指針與結(jié)構(gòu)使用指針變量指向結(jié)構(gòu)體變量或結(jié)構(gòu)體數(shù)組時(shí),應(yīng)注意運(yùn)算符的優(yōu)先級(jí):1.“()”、”[]”、“->”、“.”四個(gè)運(yùn)算符優(yōu)先級(jí)相同,在C語(yǔ)言中具有最高的優(yōu)

5、先級(jí),運(yùn)算的結(jié)合方向是“從左到右”;2.“*”、“十十”、“一一”、“&”四個(gè)運(yùn)算符優(yōu)先級(jí)相同,在C語(yǔ)言優(yōu)先級(jí)的級(jí)別僅次于上述的四個(gè)運(yùn)算符,運(yùn)算的結(jié)合方向是“從右到左”。[例8.16]通過(guò)一個(gè)簡(jiǎn)單的例子說(shuō)明指向結(jié)構(gòu)體數(shù)組的指針的應(yīng)用。在程序中,為了說(shuō)明運(yùn)算符的優(yōu)先級(jí)和結(jié)合方向的用法,改變了書(shū)的價(jià)格。main(){structdatetp{unsignedyear;unsignedmonth;};/*出版日期*/第8章用戶自定義數(shù)據(jù)類型——指針與結(jié)構(gòu)structbooktp{charname[60];/*書(shū)名*/charauthor[30];/*作者*/floatprice;/*價(jià)

6、格*/structdatetppubday;};structbooktp*p,book[3]={{“C++Buider網(wǎng)絡(luò)開(kāi)發(fā)實(shí)例”,”清漢計(jì)算機(jī)工作室”,53.0,{2000,9}},{“SQLServer循序漸進(jìn)教程”,”P(pán)etkovic”,35.0,{1999,6}},{“VB開(kāi)發(fā)指南”,”DianneSiebold”,28.0,{2000,9}}};p=book;printf(”%8.2f,”,++p->price);/*橙色表達(dá)式等價(jià)于++(p->price)*/第8章用戶自定義數(shù)據(jù)類型——指針與結(jié)構(gòu)printf(”%8.2f,”,(++p)->price);/*先計(jì)算

7、++p,p指向book[l]*/printf(”%8.2f,”,p++->price);/*上述表達(dá)式等價(jià)于(p++)->price*/printf(“%8.2f\n”,p->price++);/*上述表達(dá)式等價(jià)于(p->price)++*/for(p=book;pname,(*p).author,p->pubday.year,p->pu

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

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

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫(huà)的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無(wú)此問(wèn)題,請(qǐng)放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫(kù)負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭(zhēng)議請(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)等原因無(wú)法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請(qǐng)聯(lián)系客服處理。