C語(yǔ)言程序設(shè)計(jì)第51講-結(jié)構(gòu)體類型的定義和引用課件_第1頁(yè)
C語(yǔ)言程序設(shè)計(jì)第51講-結(jié)構(gòu)體類型的定義和引用課件_第2頁(yè)
C語(yǔ)言程序設(shè)計(jì)第51講-結(jié)構(gòu)體類型的定義和引用課件_第3頁(yè)
C語(yǔ)言程序設(shè)計(jì)第51講-結(jié)構(gòu)體類型的定義和引用課件_第4頁(yè)
C語(yǔ)言程序設(shè)計(jì)第51講-結(jié)構(gòu)體類型的定義和引用課件_第5頁(yè)
已閱讀5頁(yè),還剩25頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

⑴理解結(jié)構(gòu)體類型的作用。⑵掌握結(jié)構(gòu)體類型變量的定義、初始化和引用。⑴理解結(jié)構(gòu)體類型的作用。如何存儲(chǔ)一個(gè)班級(jí)中5名學(xué)生的信息(學(xué)號(hào)、姓名、性別和成績(jī))結(jié)構(gòu)體類型方案一:使用多個(gè)數(shù)組問題:不能建立數(shù)組間的關(guān)系如何存儲(chǔ)一個(gè)班級(jí)中5名學(xué)生的信息(學(xué)號(hào)、姓名、性別和成績(jī)?nèi)绾未鎯?chǔ)一個(gè)班級(jí)中5名學(xué)生的信息(學(xué)號(hào)、姓名、性別和成績(jī))結(jié)構(gòu)體類型方案二:使用多維數(shù)組問題:C語(yǔ)言不允許一個(gè)數(shù)組包含多種數(shù)據(jù)類型如何存儲(chǔ)一個(gè)班級(jí)中5名學(xué)生的信息(學(xué)號(hào)、姓名、性別和成績(jī)?nèi)绾未鎯?chǔ)一個(gè)班級(jí)中5名學(xué)生的信息(學(xué)號(hào)、姓名、性別和成績(jī))結(jié)構(gòu)體類型方案三:使用結(jié)構(gòu)體numnamesexscoreC語(yǔ)言引入了稱為結(jié)構(gòu)體的數(shù)據(jù)存儲(chǔ)方式?!敖Y(jié)構(gòu)體”是一種構(gòu)造數(shù)據(jù)類型,它是由若干數(shù)據(jù)項(xiàng)組合而成的復(fù)雜數(shù)據(jù)對(duì)象,這些數(shù)據(jù)項(xiàng)稱為結(jié)構(gòu)體的成員。如何存儲(chǔ)一個(gè)班級(jí)中5名學(xué)生的信息(學(xué)號(hào)、姓名、性別和成績(jī)一、結(jié)構(gòu)體類型的定義結(jié)構(gòu)體類型定義的一般形式

struct結(jié)構(gòu)體名

{

類型標(biāo)識(shí)符成員名1;

類型標(biāo)識(shí)符成員名2;

. . . 類型標(biāo)識(shí)符成員名n; };

關(guān)鍵詞應(yīng)符合標(biāo)識(shí)符的命名規(guī)則,它是類型的標(biāo)識(shí)符而不是變量名。各成員的數(shù)據(jù)類型,可以是任意一種C語(yǔ)言中的有效數(shù)據(jù)類型結(jié)構(gòu)體成員的名稱,也應(yīng)符合標(biāo)識(shí)符的命名規(guī)則。structstudent{intnum;charname[20];charsex;floatscore;};numnamesexstudentscore一、結(jié)構(gòu)體類型的定義結(jié)構(gòu)體類型定義的一般形式關(guān)鍵詞應(yīng)符合標(biāo)識(shí)二、結(jié)構(gòu)體類型變量的定義結(jié)構(gòu)體的定義僅描述了一個(gè)結(jié)構(gòu)體的形式。如果要在程序里使用結(jié)構(gòu)體,需要聲明結(jié)構(gòu)體類型的變量。定義結(jié)構(gòu)體類型的變量有以下3種方法:1.先定義結(jié)構(gòu)體類型,再定義該類型的變量,例如:structstudent{intnum;charname[20];charsex;floatscore;};structstudentstu1,stu2;

二、結(jié)構(gòu)體類型變量的定義結(jié)構(gòu)體的定義僅描述了一個(gè)結(jié)構(gòu)體的形式2.在定義結(jié)構(gòu)體類型的同時(shí)定義結(jié)構(gòu)體變量,例如:structstudent{intnum;charname[20];charsex;floatscore;}stu1,stu2;二、結(jié)構(gòu)體類型變量的定義2.在定義結(jié)構(gòu)體類型的同時(shí)定義結(jié)構(gòu)體變量,例如:二、結(jié)構(gòu)體類3.直接定義結(jié)構(gòu)體變量,例如:struct{intnum;charname[20];charsex;floatscore;}stu1,stu2;說明:本方法中只是直接定義了兩個(gè)結(jié)構(gòu)體變量,省略了結(jié)構(gòu)體類型名,因此程序中無法再使用它來定義該結(jié)構(gòu)體類型的其他變量。二、結(jié)構(gòu)體類型變量的定義3.直接定義結(jié)構(gòu)體變量,例如:說明:本方法中只是直接定義了兩⑴結(jié)構(gòu)體類型不同于結(jié)構(gòu)體變量,不能直接對(duì)結(jié)構(gòu)體類型進(jìn)行賦值、存取等操作。⑵結(jié)構(gòu)體成員名可以與程序中的某一變量名相同,但二者并不代表同一存儲(chǔ)單元。⑶結(jié)構(gòu)體類型定義可以在函數(shù)的內(nèi)部,也可以在函數(shù)的外部。在函數(shù)內(nèi)部定義的結(jié)構(gòu)體,其作用域僅限于該函數(shù)內(nèi)部,而在函數(shù)外部定義的結(jié)構(gòu)體,其作用域是從定義處開始到本文件結(jié)束。

注意⑴結(jié)構(gòu)體類型不同于結(jié)構(gòu)體變量,不能直接對(duì)結(jié)構(gòu)體類型進(jìn)行賦值 結(jié)構(gòu)體類型變量的3種定義形式,均可在定義時(shí)初始化。初始化的一般形式為:

struct結(jié)構(gòu)體名{

結(jié)構(gòu)體成員表列;}結(jié)構(gòu)體變量={初始數(shù)據(jù)表};用戶在初始化的過程中,要注意并不是所有成員都必須賦初值,可以只初始化結(jié)構(gòu)體變量的部分成員。初始化數(shù)據(jù)之間要用“,”隔開,不進(jìn)行初始化的成員項(xiàng)也要用“,”跳過。需注意每個(gè)初始數(shù)據(jù)必須與其對(duì)應(yīng)成員的數(shù)據(jù)類型相一致。三、結(jié)構(gòu)體類型變量的初始化 結(jié)構(gòu)體類型變量的3種定義形式,均可在定義時(shí)初始化。初始化的

.【例1】對(duì)結(jié)構(gòu)體變量進(jìn)行初始化。

#include<stdio.h> main() { structstudent { intnum; charname[20]; charsex; floatscore; }stu={8001,"zhangping",'m',78.5}; printf("Number=%d\nName=%s\n",stu.num,); printf("Sex=%c\nScore=%.2f\n",stu.sex,stu.score); }程序運(yùn)行結(jié)果:Number=8001Name=zhangpingSex=mScore=78.50 .【例1】對(duì)結(jié)構(gòu)體變量進(jìn)行初始化。 #include<s四、結(jié)構(gòu)體類型變量的引用1.引用結(jié)構(gòu)體變量中的一個(gè)成員。 表示結(jié)構(gòu)體成員的一般形式為: 結(jié)構(gòu)體變量名.成員名 其中”.”稱為成員運(yùn)算符,它的運(yùn)算級(jí)別最高,和圓括號(hào)運(yùn)算符“()”、下標(biāo)運(yùn)算符“[]”是相同級(jí)別的,結(jié)合方向?yàn)樽宰笙蛴?。四、結(jié)構(gòu)體類型變量的引用1.引用結(jié)構(gòu)體變量中的一個(gè)成員。structdate{intmonth;intday;intyear;};struct{intnum;charname[20];charsex;

structdatebirthday;floatscore;}student1,student2;表示結(jié)構(gòu)變量成員的一般形式是:結(jié)構(gòu)變量名.成員名例如:student1.num、student2.sex、student1.birthday.month四、結(jié)構(gòu)體類型變量的引用structdatestruct{表示結(jié)構(gòu)變量成員的一般形2.結(jié)構(gòu)體變量作為整體來引用。兩個(gè)相同類型的結(jié)構(gòu)體變量之間可以直接相互賦值。C語(yǔ)言不允許用賦值語(yǔ)句將一組常量直接賦值給一個(gè)結(jié)構(gòu)體變量。不能用一條語(yǔ)句整體讀入結(jié)構(gòu)體變量:

四、結(jié)構(gòu)體類型變量的引用下面的賦值語(yǔ)句是不合法的:

stu2={8002,"wangping",'m',89};下面的語(yǔ)句是不合法的: scanf("%d,%s,%c,%f",&stu1);2.結(jié)構(gòu)體變量作為整體來引用。四、結(jié)構(gòu)體類型變量的引用下面的小結(jié)(1)為什么要使用結(jié)構(gòu)體。(2)結(jié)構(gòu)體類型的定義。(3)結(jié)構(gòu)體類型變量的定義初始化和引用。小結(jié)(1)為什么要使用結(jié)構(gòu)體。⑴理解結(jié)構(gòu)體類型的作用。⑵掌握結(jié)構(gòu)體類型變量的定義、初始化和引用。⑴理解結(jié)構(gòu)體類型的作用。如何存儲(chǔ)一個(gè)班級(jí)中5名學(xué)生的信息(學(xué)號(hào)、姓名、性別和成績(jī))結(jié)構(gòu)體類型方案一:使用多個(gè)數(shù)組問題:不能建立數(shù)組間的關(guān)系如何存儲(chǔ)一個(gè)班級(jí)中5名學(xué)生的信息(學(xué)號(hào)、姓名、性別和成績(jī)?nèi)绾未鎯?chǔ)一個(gè)班級(jí)中5名學(xué)生的信息(學(xué)號(hào)、姓名、性別和成績(jī))結(jié)構(gòu)體類型方案二:使用多維數(shù)組問題:C語(yǔ)言不允許一個(gè)數(shù)組包含多種數(shù)據(jù)類型如何存儲(chǔ)一個(gè)班級(jí)中5名學(xué)生的信息(學(xué)號(hào)、姓名、性別和成績(jī)?nèi)绾未鎯?chǔ)一個(gè)班級(jí)中5名學(xué)生的信息(學(xué)號(hào)、姓名、性別和成績(jī))結(jié)構(gòu)體類型方案三:使用結(jié)構(gòu)體numnamesexscoreC語(yǔ)言引入了稱為結(jié)構(gòu)體的數(shù)據(jù)存儲(chǔ)方式?!敖Y(jié)構(gòu)體”是一種構(gòu)造數(shù)據(jù)類型,它是由若干數(shù)據(jù)項(xiàng)組合而成的復(fù)雜數(shù)據(jù)對(duì)象,這些數(shù)據(jù)項(xiàng)稱為結(jié)構(gòu)體的成員。如何存儲(chǔ)一個(gè)班級(jí)中5名學(xué)生的信息(學(xué)號(hào)、姓名、性別和成績(jī)一、結(jié)構(gòu)體類型的定義結(jié)構(gòu)體類型定義的一般形式

struct結(jié)構(gòu)體名

{

類型標(biāo)識(shí)符成員名1;

類型標(biāo)識(shí)符成員名2;

. . . 類型標(biāo)識(shí)符成員名n; };

關(guān)鍵詞應(yīng)符合標(biāo)識(shí)符的命名規(guī)則,它是類型的標(biāo)識(shí)符而不是變量名。各成員的數(shù)據(jù)類型,可以是任意一種C語(yǔ)言中的有效數(shù)據(jù)類型結(jié)構(gòu)體成員的名稱,也應(yīng)符合標(biāo)識(shí)符的命名規(guī)則。structstudent{intnum;charname[20];charsex;floatscore;};numnamesexstudentscore一、結(jié)構(gòu)體類型的定義結(jié)構(gòu)體類型定義的一般形式關(guān)鍵詞應(yīng)符合標(biāo)識(shí)二、結(jié)構(gòu)體類型變量的定義結(jié)構(gòu)體的定義僅描述了一個(gè)結(jié)構(gòu)體的形式。如果要在程序里使用結(jié)構(gòu)體,需要聲明結(jié)構(gòu)體類型的變量。定義結(jié)構(gòu)體類型的變量有以下3種方法:1.先定義結(jié)構(gòu)體類型,再定義該類型的變量,例如:structstudent{intnum;charname[20];charsex;floatscore;};structstudentstu1,stu2;

二、結(jié)構(gòu)體類型變量的定義結(jié)構(gòu)體的定義僅描述了一個(gè)結(jié)構(gòu)體的形式2.在定義結(jié)構(gòu)體類型的同時(shí)定義結(jié)構(gòu)體變量,例如:structstudent{intnum;charname[20];charsex;floatscore;}stu1,stu2;二、結(jié)構(gòu)體類型變量的定義2.在定義結(jié)構(gòu)體類型的同時(shí)定義結(jié)構(gòu)體變量,例如:二、結(jié)構(gòu)體類3.直接定義結(jié)構(gòu)體變量,例如:struct{intnum;charname[20];charsex;floatscore;}stu1,stu2;說明:本方法中只是直接定義了兩個(gè)結(jié)構(gòu)體變量,省略了結(jié)構(gòu)體類型名,因此程序中無法再使用它來定義該結(jié)構(gòu)體類型的其他變量。二、結(jié)構(gòu)體類型變量的定義3.直接定義結(jié)構(gòu)體變量,例如:說明:本方法中只是直接定義了兩⑴結(jié)構(gòu)體類型不同于結(jié)構(gòu)體變量,不能直接對(duì)結(jié)構(gòu)體類型進(jìn)行賦值、存取等操作。⑵結(jié)構(gòu)體成員名可以與程序中的某一變量名相同,但二者并不代表同一存儲(chǔ)單元。⑶結(jié)構(gòu)體類型定義可以在函數(shù)的內(nèi)部,也可以在函數(shù)的外部。在函數(shù)內(nèi)部定義的結(jié)構(gòu)體,其作用域僅限于該函數(shù)內(nèi)部,而在函數(shù)外部定義的結(jié)構(gòu)體,其作用域是從定義處開始到本文件結(jié)束。

注意⑴結(jié)構(gòu)體類型不同于結(jié)構(gòu)體變量,不能直接對(duì)結(jié)構(gòu)體類型進(jìn)行賦值 結(jié)構(gòu)體類型變量的3種定義形式,均可在定義時(shí)初始化。初始化的一般形式為:

struct結(jié)構(gòu)體名{

結(jié)構(gòu)體成員表列;}結(jié)構(gòu)體變量={初始數(shù)據(jù)表};用戶在初始化的過程中,要注意并不是所有成員都必須賦初值,可以只初始化結(jié)構(gòu)體變量的部分成員。初始化數(shù)據(jù)之間要用“,”隔開,不進(jìn)行初始化的成員項(xiàng)也要用“,”跳過。需注意每個(gè)初始數(shù)據(jù)必須與其對(duì)應(yīng)成員的數(shù)據(jù)類型相一致。三、結(jié)構(gòu)體類型變量的初始化 結(jié)構(gòu)體類型變量的3種定義形式,均可在定義時(shí)初始化。初始化的

.【例1】對(duì)結(jié)構(gòu)體變量進(jìn)行初始化。

#include<stdio.h> main() { structstudent { intnum; charname[20]; charsex; floatscore; }stu={8001,"zhangping",'m',78.5}; printf("Number=%d\nName=%s\n",stu.num,); printf("Sex=%c\nScore=%.2f\n",stu.sex,stu.score); }程序運(yùn)行結(jié)果:Number=8001Name=zhangpingSex=mScore=78.50 .【例1】對(duì)結(jié)構(gòu)體變量進(jìn)行初始化。 #include<s四、結(jié)構(gòu)體類型變量的引用1.引用結(jié)構(gòu)體變量中的一個(gè)成員。 表示結(jié)構(gòu)體成員的一般形式為: 結(jié)構(gòu)體變量名.成員名 其中”.”稱為成員運(yùn)算符,它的運(yùn)算級(jí)別最高,和圓括號(hào)運(yùn)算符“()”、下標(biāo)運(yùn)算符“[]”是相同級(jí)別的,結(jié)合方向?yàn)樽宰笙蛴?。四、結(jié)構(gòu)體類型變量的引用1.引用結(jié)構(gòu)體變量中的一個(gè)成員。structdate{intmo

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論