第6章 結(jié)構(gòu)類型課件_第1頁
第6章 結(jié)構(gòu)類型課件_第2頁
第6章 結(jié)構(gòu)類型課件_第3頁
第6章 結(jié)構(gòu)類型課件_第4頁
第6章 結(jié)構(gòu)類型課件_第5頁
已閱讀5頁,還剩8頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

6.1結(jié)構(gòu)體數(shù)據(jù)類型1.結(jié)構(gòu)體類型的定義2.結(jié)構(gòu)體變量的定義3.結(jié)構(gòu)體變量的初始化4.結(jié)構(gòu)體變量成員的引用structstudent{longno;charname[15];charsex;intage;floatscore;};在這個(gè)結(jié)構(gòu)體定義中,student為結(jié)構(gòu)體名,no、name、sex、age和score為該結(jié)構(gòu)的5個(gè)成員。其中no為長整型變量;name為字符數(shù)組;sex為字符變量;age為整型變量;score為實(shí)型變量。一般情況下,結(jié)構(gòu)體名稱用有一定意義的單詞或單詞的縮寫組合作為結(jié)構(gòu)體的名稱。結(jié)構(gòu)體是一個(gè)整體,因此結(jié)構(gòu)體中的每個(gè)成員不能脫離結(jié)構(gòu)體單獨(dú)使用。

1第6章結(jié)構(gòu)類型6.1結(jié)構(gòu)體數(shù)據(jù)類型2.結(jié)構(gòu)體變量的定義1.結(jié)構(gòu)體類型的定義3.結(jié)構(gòu)體變量的初始化4.結(jié)構(gòu)體變量成員的引用2.在定義結(jié)構(gòu)體類型的同時(shí)定義結(jié)構(gòu)體變量。例如:structstudent{longno;charname[15];charsex;intage;floatscore;}stu1,stu2;2第6章結(jié)構(gòu)類型6.1結(jié)構(gòu)體數(shù)據(jù)類型2.結(jié)構(gòu)體變量的定義1.結(jié)構(gòu)體類型的定義3.結(jié)構(gòu)體變量的初始化4.結(jié)構(gòu)體變量成員的引用3.直接定義結(jié)構(gòu)體類型的變量。例如:struct{longno;charname[15];charsex;intage;floatscore;}stu1,stu2;3第6章結(jié)構(gòu)類型6.1結(jié)構(gòu)體數(shù)據(jù)類型3.結(jié)構(gòu)體變量的初始化1.結(jié)構(gòu)體類型的定義2.結(jié)構(gòu)體變量的定義4.結(jié)構(gòu)體變量成員的引用【例6-1】外部結(jié)構(gòu)體變量初始化#include<stdio.h>structstudent/*結(jié)構(gòu)體定義*/{longno;charname[15];charsex;intage;floatscore;}stu1;structstudentstu1={20080001,"ZhangJun",'M',21,87.5};voidmain(){printf("No.=%ld\nName=%s\n",stu1.no,);printf("Sex=%c\nAge=%d\nScore=%f\n",stu1.sex,stu1.age,stu1.score);}

4第6章結(jié)構(gòu)類型6.1結(jié)構(gòu)體數(shù)據(jù)類型4.結(jié)構(gòu)體變量成員的引用1.結(jié)構(gòu)體類型的定義2.結(jié)構(gòu)體變量的定義3.結(jié)構(gòu)體變量的初始化定義了結(jié)構(gòu)體變量以后,就可以引用這個(gè)變量,在程序中使用結(jié)構(gòu)變量時(shí),往往不把它作為一個(gè)整體來使用。對結(jié)構(gòu)變量的使用,包括賦值、輸入、輸出、運(yùn)算等都是通過結(jié)構(gòu)變量的成員來實(shí)現(xiàn)的。表示結(jié)構(gòu)變量成員的一般形式是:<結(jié)構(gòu)變量名>.<成員名>例如:stu1.no/*學(xué)生的學(xué)號(hào)*//*學(xué)生的姓名*/其中‘.’是成員運(yùn)算符,它在所有的運(yùn)算符中優(yōu)先級最高。如果成員本身又是一個(gè)結(jié)構(gòu)體類型,則應(yīng)該用若干個(gè)‘.’一級一級地找到最低級的成員。例如:stu1.birthday.yearstu1.birthday.monthstu1.birthday.day不能將一個(gè)結(jié)構(gòu)體變量作為一個(gè)整體加以引用,例如已定義了結(jié)構(gòu)體變量stu1,并且進(jìn)行了初始化。

5第6章結(jié)構(gòu)類型6.1結(jié)構(gòu)體數(shù)據(jù)類型4.結(jié)構(gòu)體變量成員的引用1.結(jié)構(gòu)體類型的定義2.結(jié)構(gòu)體變量的定義3.結(jié)構(gòu)體變量的初始化【例6-3】結(jié)構(gòu)體變量的引用#include<stdio.h>voidmain(){structdate{intyear;intmonth;intday;};structstudent{longno;charname[15];charsex;intage;structdatebirthday;floatscore;}stu2,stu1={20080001,"ZhangJun",'M',21,1987,3,19,87.5};stu2=stu1;stu2.age++;printf("No.=%ld\nName=%s\n",stu2.no,);printf("Birthday=%d-%d-%d\n",stu2.birthday.year,stu2.birthday.month,stu2.birthday.day);printf("Sex=%c\nAge=%d\nScore=%.2f\n",stu2.sex,stu2.age,stu2.score);}

6第6章結(jié)構(gòu)類型6.2結(jié)構(gòu)體與數(shù)組1.結(jié)構(gòu)體數(shù)組的定義2.結(jié)構(gòu)體數(shù)組的初始化3.結(jié)構(gòu)體數(shù)組的引用結(jié)構(gòu)體數(shù)組的定義方法和結(jié)構(gòu)體變量的定義方法相同,可以采用三種方法定義結(jié)構(gòu)體數(shù)組,本節(jié)以第二種方法為例。例如:structstudent{longno;charname[15];charsex;intage;floatscore;char*address;}stu[5];定義了一個(gè)結(jié)構(gòu)數(shù)組stu,數(shù)組中包含5個(gè)元素,stu[0]~stu[4]。每個(gè)數(shù)組元素都是一個(gè)結(jié)構(gòu)體變量。

7第6章結(jié)構(gòu)類型6.2結(jié)構(gòu)體與數(shù)組2.結(jié)構(gòu)體數(shù)組的引用1.結(jié)構(gòu)體數(shù)組的定義3.結(jié)構(gòu)體數(shù)組的初始化【例6-4】計(jì)算學(xué)生的平均成績#include<stdio.h>structstudent{longno;charname[15];charsex;intage;floatscore;char*address;}stu[5]={{20080001,"Liuping",'F',20,85.0,"Beijing"}, {20080002,"Zhangbin",'M',21,72.0,"Anshan"}, {20080003,"Hanfeng",'M',21,96.5,"Hefei"}, {20080004,"zengli",'F',21,67.0,"Dalian"}, {20080005,"Wangmin",'F',20,57.5,"Tianjin"}};8第6章結(jié)構(gòu)類型6.2結(jié)構(gòu)體與數(shù)組2.結(jié)構(gòu)體數(shù)組的引用1.結(jié)構(gòu)體數(shù)組的定義3.結(jié)構(gòu)體數(shù)組的初始化【例6-5】計(jì)算學(xué)生的平均成績voidmain(){inti;floatave,sum=0;for(i=0;i<5;i++){sum=sum+stu[i].score;}ave=sum/5;printf("Average=%.2f\n",ave);}

9第6章結(jié)構(gòu)類型6.3結(jié)構(gòu)體與指針1.指向結(jié)構(gòu)體變量的指針2.指向結(jié)構(gòu)體數(shù)組的指針指向一個(gè)結(jié)構(gòu)體變量的指針變量稱之為結(jié)構(gòu)體指針變量。一個(gè)結(jié)構(gòu)體變量的指針是該變量所占內(nèi)存空間的首地址。通過結(jié)構(gòu)體指針即可訪問該結(jié)構(gòu)體變量。結(jié)構(gòu)體指針變量定義的一般形式為:

struct結(jié)構(gòu)體名*結(jié)構(gòu)體指針變量名例如:structstudent{longno;charname[15];charsex;intage;floatscore;char*address;}stu1,stu2;structstudent*pstu;結(jié)構(gòu)體指針變量先賦值后才能使用。賦值是把結(jié)構(gòu)體變量的首地址賦予該指針變量。

10第6章結(jié)構(gòu)類型6.3結(jié)構(gòu)體與指針指針變量可以指向一個(gè)結(jié)構(gòu)體變量,同樣指針變量也可以指向一個(gè)結(jié)構(gòu)體數(shù)組,此時(shí)結(jié)構(gòu)體指針變量的值是整個(gè)結(jié)構(gòu)數(shù)組的首地址。通過結(jié)構(gòu)體指針變量的移動(dòng)可以指向結(jié)構(gòu)體數(shù)組的任意一個(gè)元素。

【例6-8】用指針變量輸出結(jié)構(gòu)體數(shù)組。#include<stdio.h>structstudent{longno;charname[15];charsex;intage;floatscore;char*address;}stu[5]={{20080001,"Liuping",'F',20,85.0,"Beijing"}, {20080002,"Zhangbin",'M',21,72.0,"Anshan"}, {20080003,"Hanfeng",'M',21,96.5,"Hefei"}, {20080004,"zengli",'F',21,67.0,"Dalian"}, {20080005,"Wangmin",'F',20,57.5,"Tianjin"}};2.指向結(jié)構(gòu)體數(shù)組的指針1.指向結(jié)構(gòu)體變量的指針11第6章結(jié)構(gòu)類型6.3結(jié)構(gòu)體與指針voidmain(){structstudent*pstu;clrscr();printf("No.\t\tName\t\tSex\tAge\tScore\t\tAddress\n");f

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論