




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
第詳解C語言結(jié)構(gòu)體的定義和使用目錄1.1:結(jié)構(gòu)體用來干嘛1.2:結(jié)構(gòu)體變量的基本定義格式1.3:結(jié)構(gòu)體變量的定義1.4結(jié)構(gòu)體變量的三種引用方法2.結(jié)構(gòu)體變量的使用(直接使用結(jié)構(gòu)體變量)2.1輸出結(jié)果3.使用結(jié)構(gòu)體指針操作,返回總成績最低的學生信息3.1運行結(jié)果總結(jié):
1.1:結(jié)構(gòu)體用來干嘛
生活中我們會遇到很多的表格,就比如你的學習成績表,有姓名,學號,各科的成績,總的成績等等,這是一些不同的數(shù)據(jù)類型,我們要是在c語言中想同時使用這些不同的數(shù)據(jù)怎么辦呢可以使用結(jié)構(gòu)體變量,結(jié)構(gòu)體變量在c語言中是一種構(gòu)造類型的數(shù)據(jù),顧名思義,它跟基本的如int這種原子類型的變量不同.可以把他看作這些基本變量的集合.
1.2:結(jié)構(gòu)體變量的基本定義格式
struct結(jié)構(gòu)體名
基本類型名成員變量名
基本類型名成員變量名
基本類型名成員變量名
};
注意:struct是關(guān)鍵字是結(jié)構(gòu)體類型的說明標識符,不能省略,結(jié)構(gòu)體名可以省略,我們在使用typedefstruct時就省略了就不寫結(jié)構(gòu)體名
1.3:結(jié)構(gòu)體變量的定義
(我們也可以在創(chuàng)建結(jié)構(gòu)體的時候聲明變量這里不再贅述,提一下我對結(jié)構(gòu)體變量的理解:首先結(jié)構(gòu)體就是一個各種基本數(shù)據(jù)類型的集合,而就結(jié)構(gòu)體變量就像我們定義一個集合s={1,2,3,4},s就相當于一個結(jié)構(gòu)體變量,結(jié)構(gòu)體變量包含結(jié)構(gòu)體中的各個成員變量,我們可以對成員變量進行引用,操作....)
struct結(jié)構(gòu)體名a,b;//定義了兩個結(jié)構(gòu)體變量
strcut結(jié)構(gòu)體名S[4];//定義一個結(jié)構(gòu)體變量數(shù)組,有四個元素
strcut結(jié)構(gòu)體名*p=//定義一個結(jié)構(gòu)體指針,指向結(jié)構(gòu)體變量a
1.4結(jié)構(gòu)體變量的三種引用方法
結(jié)構(gòu)體變量.成員名
(*結(jié)構(gòu)體指針).成員名
結(jié)構(gòu)體指針-成員名//使用指針的時候推薦使用這一種,因為在數(shù)據(jù)結(jié)構(gòu)中,很多這種引用方式
2.結(jié)構(gòu)體變量的使用(直接使用結(jié)構(gòu)體變量)
#includestdio.h
/*結(jié)構(gòu)體的使用*/
intmain()
structjob_exam//定義一個job_exam的結(jié)構(gòu)體
unsignednum;//學號
charname[10];//姓名
chargread_class[10];//班級
intEngLish;//英語成績
intChinese;//語文成績
intMatch;//數(shù)學成績
intSum_Exam;//總成績
structjob_examMost_Exam_Student;//結(jié)構(gòu)體變量用來存放成績最高的同學的信息
structjob_examSomeStudent_news[4]={{1901,"隴軍","3-2班",100,100,78},{1902,"李華","3-2班",99,99,88},
{1903,"李明","3-2班",99,98,90},{1903,"李光","3-2班",99,98,80}};//結(jié)構(gòu)體數(shù)組用來輸入4名同學的信息
for(inti=0;ii++)//依次計算每一位同學的總成績
SomeStudent_news[i].Sum_Exam=SomeStudent_news[i].EngLish+SomeStudent_news[i].Chinese+SomeStudent_news[i].Match;
Most_Exam_Student=SomeStudent_news[0];//假使第一個學生的成績最高
if(Most_Exam_Student.Sum_ExamSomeStudent_news[1].Sum_Exam)
Most_Exam_Student=SomeStudent_news[1];
elseif(Most_Exam_Student.Sum_ExamSomeStudent_news[2].Sum_Exam)
Most_Exam_Student=SomeStudent_news[2];
else
Most_Exam_Student=SomeStudent_news[3];
printf("總成績最高學生的信息為:\n");
printf("編號姓名班級英語語文數(shù)學總成績\n");
printf("%6u%7s%7s%6d%6d%6d%6d",Most_Exam_Student.num,Most_Exam_S,Most_Exam_Student.gread_class,Most_Exam_Student.EngLish,Most_Exam_Student.Chinese,Most_Exam_Student.Match,Most_Exam_Student.Sum_Exam);
}
2.1輸出結(jié)果
當用結(jié)構(gòu)體變量作為函數(shù)參數(shù)進行整體傳送時,要將全部成員逐個進行傳送,當成員中有數(shù)組時,會使傳送的時間和空間開銷都很大嚴重降低程序的效率,所以我們一般在使用時不直接傳送結(jié)構(gòu)體變量,而是傳送結(jié)構(gòu)體變量的地址,減少時間課空間的開銷
3.使用結(jié)構(gòu)體指針操作,返回總成績最低的學生信息
#includestdio.h
/*結(jié)構(gòu)體的使用*/
intFind_Sumexam(structjob_exam*pa);//函數(shù)聲明
structjob_exam//定義一個全局job_exam的結(jié)構(gòu)體
unsignednum;//學號
charname[10];//姓名
chargread_class[10];//班級
intEngLish;//英語成績
intChinese;//語文成績
intMatch;//數(shù)學成績
intSum_Exam;//總成績
structjob_examSomeStudent_news[4]={{1901,"隴軍","3-2班",100,100,78},{1902,"李華","3-2班",99,99,88},//結(jié)構(gòu)體數(shù)組用來輸入4名同學的信息
{1903,"李明","3-2班",99,98,90},{1903,"李光","3-2班",99,98,80}};
intmain()
structjob_examMost_Exam_Student;//結(jié)構(gòu)體變量用來存放成績最高的同學的信息
for(inti=0;ii++)//依次計算每一位同學的總成績
SomeStudent_news[i].Sum_Exam=SomeStudent_news[i].EngLish+SomeStudent_news[i].Chinese+SomeStudent_news[i].Match;
Find_Sumexam(Most_Exam_Student);//函數(shù)調(diào)用
printf("總成績最低學生的信息為:\n");
printf("編號姓名班級英語語文數(shù)學總成績\n");
printf("%6u%7s%7s%6d%6d%6d%6d",Most_Exam_Student.num,Most_Exam_S,Most_Exam_Student.gread_class,Most_Exam_Student.EngLish,Most_Exam_Student.Chinese,Most_Exam_Student.Match,Most_Exam_Student.Sum_Exam);
intFind_Sumexam(structjob_exam*pa)//定義一個返回最高學生信息的函數(shù)
*pa=SomeStudent_news[0];//假使第一個學生的總成績最高
for(inti=1;ii++)
if(pa-Sum_ExamSomeStudent_news[i].Sum_Exam)
*pa=SomeStudent_news[i];//這樣的化只需要找到
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 機器人技術(shù)應(yīng)用職業(yè)資格考試試卷及答案2025年
- 電商運營師職業(yè)資格考試題及答案2025年
- 2025年醫(yī)藥經(jīng)濟學考試試卷及答案
- 2025年網(wǎng)絡(luò)安全專業(yè)考試試題及答案
- 2025年全球經(jīng)濟形勢與貿(mào)易政策研究考試卷及答案
- 2025年石油工程師執(zhí)業(yè)資格考試試卷及答案
- 2025年企業(yè)管理技能提升考試試題及答案
- 2025年老年社會科學職業(yè)資格考試試題及答案
- 2025年計算機應(yīng)用基礎(chǔ)考試試卷及答案
- 2025年礦業(yè)工程師考試試題及答案
- 模具工裝檢具加工申請單
- TB10092-2017 鐵路橋涵混凝土結(jié)構(gòu)設(shè)計規(guī)范
- 計算機聯(lián)鎖控制系統(tǒng)軟件可靠性與安全性技術(shù)保障
- 水利水電工程施工導流設(shè)計規(guī)范
- 每日工作流程物業(yè)保安主管經(jīng)理
- 供應(yīng)商應(yīng)付賬款管理表
- STEM教學設(shè)計與實施PPT完整全套教學課件
- 學大教育:上海瑞聚實業(yè)有限公司設(shè)備年市場租金價值評估項目評估報告
- 思密達能快速治療壓瘡
- 《勒俄特依 彝族古典長詩 中華大國學經(jīng)典文庫 》讀書筆記思維導圖
- 銑床操作作業(yè)指導書
評論
0/150
提交評論