《結(jié)構(gòu)體與指針》PPT課件

《結(jié)構(gòu)體與指針》PPT課件

ID:45597618

大小:731.50 KB

頁數(shù):22頁

時間:2019-11-15

《結(jié)構(gòu)體與指針》PPT課件_第1頁
《結(jié)構(gòu)體與指針》PPT課件_第2頁
《結(jié)構(gòu)體與指針》PPT課件_第3頁
《結(jié)構(gòu)體與指針》PPT課件_第4頁
《結(jié)構(gòu)體與指針》PPT課件_第5頁
資源描述:

《《結(jié)構(gòu)體與指針》PPT課件》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。

1、指向結(jié)構(gòu)體的指針定義結(jié)構(gòu)體的指針struct結(jié)構(gòu)體名*指針名;如:structStudent{charname[10];intage;};structStudents;structStudent*p;p=&s;用指針訪問結(jié)構(gòu)體的成員(*p).name(*p).age指向結(jié)構(gòu)體的指針用指針直接訪問結(jié)構(gòu)體的成員可以用“->”符號如上題中可以這樣訪問:p->namep->age以下三條語句是等價(jià)的:s.age=1;(*p).age=1;p->age=1;以下是錯誤的:p.name=“Jom”;p.age=5;s->name=“Jake”;s->age=10;p是一個指針,不是結(jié)構(gòu)體

2、變量,沒有“.”操作S是一個結(jié)構(gòu)體變量,不是指針,沒有“->”操作指向結(jié)構(gòu)體的指針structStudent{charname[20];intage;intsex;};編寫一個函數(shù)change(),實(shí)現(xiàn)兩個Student類型的變量的內(nèi)容交換指向結(jié)構(gòu)體的指針此題中,函數(shù)的形參若定義為:voidchange(structStudents1,structStudents2)則形參s1和s2將接收Student類型的實(shí)參,是實(shí)參的拷貝,對s1和s2進(jìn)行內(nèi)容交換,對實(shí)參,不會產(chǎn)生任何影響。因此,該函的形參應(yīng)該定義為:voidchange(structStudent*p1,structS

3、tudent*p2)形參p1和p2是Student類型的指針,將接收Student類型變量的地址,能夠通過p1和p2對實(shí)參所指向的Student類型變量進(jìn)行修改。voidchange(structstudent*s1,structstudent*s2){structstudenttemp;strcpy(temp.name,s1->name);strcpy(s1->name,s2->name);strcpy(s2->name,temp.name);temp.age=s1->age;s1->age=s2->age;s2->age=temp.age;temp.sex=s1->sex

4、;s1->sex=s2->sex;s2->sex=temp.sex;}指向結(jié)構(gòu)體的指針具體函數(shù)實(shí)現(xiàn)2,直接交換voidchange(structstudent*s1,structstudent*s2){structstudenttemp;temp=*s1;*s1=*s2;*s2=temp;}intmain(){intn,i,mini;floatx,y,mint,t;structstudentstudent1={"wangyan",23,0};structstudentstudent2={"zhangsan",24,1};printf("交換前的信息:");printf("

5、%s%d%d",student1.name,student1.age,student1.sex);printf("%s%d%d",student2.name,student2.age,student2.sex);printf("交換后的信息:");change(&student1,&student2);printf("%s%d%d",student1.name,student1.age,student1.sex);printf("%s%d%d",student2.name,student2.age,student2.sex);return0;}運(yùn)行結(jié)果:指

6、向結(jié)構(gòu)體的指針將一些有序的數(shù)據(jù)放在數(shù)組中時,當(dāng)發(fā)生數(shù)據(jù)增加和刪除時,數(shù)組需要大量的移動操作,代價(jià)很高。單項(xiàng)鏈表:一個節(jié)點(diǎn)通過指針連接著下一個節(jié)點(diǎn)。節(jié)點(diǎn)的插入和刪除只需要修改若干指針就可以,代價(jià)比數(shù)組小得多。如:定義結(jié)構(gòu)體用于建立一個學(xué)生數(shù)據(jù)的鏈表,鏈表中的學(xué)生按照年齡順序存放。structStudent{charname[20];intage;structStudent*next;//Student類型的指針,指向下一個學(xué)生};指向結(jié)構(gòu)體的指針Name:JomAge:20Next:Name:LilyAge:14Next:Name:RoseAge:10Next:Name:Jak

7、eAge:13Next:建立鏈表的結(jié)構(gòu):指向結(jié)構(gòu)體的指針建立鏈表所需的東西:定義鏈表中每個節(jié)點(diǎn)所屬的結(jié)構(gòu)體類型,此結(jié)構(gòu)體類型中應(yīng)當(dāng)有指向下一節(jié)點(diǎn)的指針structStudent{charname[20];intage;structStudent*next;};記錄鏈表頭節(jié)點(diǎn)的指針structStudent*head;指向結(jié)構(gòu)體的指針建立鏈表(向鏈表中添加節(jié)點(diǎn))的函數(shù):voidaddStudent(structStudent*head,structStudents){s.next=null;//先將s的n

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

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

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