" />

欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

詳解C語言結(jié)構(gòu)體的定義和使用

 更新時間:2021年12月28日 16:19:41   作者:女孩臉紅了  
這篇文章主要為大家介紹了C語言結(jié)構(gòu)體的定義和使用,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助

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)體名可以省略,我們在使用 typedef struct 時就省略了就不寫結(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 = &a;   //定義一個結(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)體變量)

#include <stdio.h>
/*結(jié)構(gòu)體的使用*/
int main()
{
	struct job_exam                   //定義一個job_exam的結(jié)構(gòu)體
	{
		unsigned num;                    //學號
		char  name[10];                  //姓名
		char  gread_class[10];           //班級
		int EngLish;                 //英語成績
		int Chinese;                 //語文成績
		int Match;                   //數(shù)學成績
		int Sum_Exam;                //總成績
	};
	struct  job_exam Most_Exam_Student;                                                                         //結(jié)構(gòu)體變量用來存放成績最高的同學的信息
	struct job_exam  SomeStudent_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 (int i = 0; i < 4; i++)          //依次計算每一位同學的總成績
	{
		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_Exam < SomeStudent_news[1].Sum_Exam)
	{
		Most_Exam_Student = SomeStudent_news[1];
	}
	else if (Most_Exam_Student.Sum_Exam < SomeStudent_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_Student.name,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)體指針操作,返回總成績最低的學生信息

#include <stdio.h>
/*結(jié)構(gòu)體的使用*/
int Find_Sumexam(struct job_exam* pa);        //函數(shù)聲明
struct job_exam                   //定義一個全局job_exam的結(jié)構(gòu)體
{
	unsigned num;                    //學號
	char  name[10];                  //姓名
	char  gread_class[10];           //班級
	int EngLish;                 //英語成績
	int Chinese;                 //語文成績
	int Match;                   //數(shù)學成績
	int Sum_Exam;                //總成績
};
struct job_exam  SomeStudent_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} };
int main()
{
	struct  job_exam Most_Exam_Student;                                                                         //結(jié)構(gòu)體變量用來存放成績最高的同學的信息
	for (int i = 0; i < 4; i++)                                                                                 //依次計算每一位同學的總成績
	{
		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_Student.name,Most_Exam_Student.gread_class,Most_Exam_Student.EngLish,Most_Exam_Student.Chinese,Most_Exam_Student.Match,Most_Exam_Student.Sum_Exam);
}
int Find_Sumexam(struct job_exam* pa)                                                                         //定義一個返回最高學生信息的函數(shù)
{
	*pa = SomeStudent_news[0];                                                                               //假使第一個學生的總成績最高
	for (int i = 1; i < 4; i++)
	{
		if (pa->Sum_Exam > SomeStudent_news[i].Sum_Exam)
		{
			*pa = SomeStudent_news[i];                                                                      //這樣的化只需要找到最高一個學生的地址返回他的信息就可以了
		}
	}
	return 0;
}

3.1運行結(jié)果

總結(jié):

結(jié)構(gòu)體沒有什么神奇的就是,一個集合里面包含了各種數(shù)據(jù)類型,我們想用什么加個.就可以拿出來用,本質(zhì)和基本的數(shù)據(jù)類型沒有什么區(qū)別,歡迎大家來評論區(qū)指出有問題的地方

本篇文章就到這里了,希望能夠給你帶來幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!

相關(guān)文章

  • 基于C語言實現(xiàn)的掃雷游戲代碼

    基于C語言實現(xiàn)的掃雷游戲代碼

    這篇文章主要介紹了基于C語言實現(xiàn)的掃雷游戲代碼,對于學習游戲開發(fā)的朋友有一定的借鑒價值,需要的朋友可以參考下
    2014-08-08
  • 詳解C++ const修飾符

    詳解C++ const修飾符

    const 是 constant 的縮寫,const可以幫我們避免無意之中的錯誤操作,本文給大家介紹C++ const修飾符的相關(guān)知識,通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2021-05-05
  • VC++ 6.0 C語言實現(xiàn)俄羅斯方塊詳細教程

    VC++ 6.0 C語言實現(xiàn)俄羅斯方塊詳細教程

    這篇文章主要為大家介紹了VC++ 6.0 C語言實現(xiàn)俄羅斯方塊詳細教程,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-06-06
  • 解析c++ 中智能指針引用計數(shù)為什么不是0原理

    解析c++ 中智能指針引用計數(shù)為什么不是0原理

    這篇文章主要為大家介紹了C語言中智能指針引用計數(shù)為什么不是0原理解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-08-08
  • C++中拷貝構(gòu)造函數(shù)的總結(jié)詳解

    C++中拷貝構(gòu)造函數(shù)的總結(jié)詳解

    深拷貝和淺拷貝可以簡單理解為:如果一個類擁有資源,當這個類的對象發(fā)生復制過程的時候,資源重新分配,這個過程就是深拷貝,反之,沒有重新分配資源,就是淺拷貝
    2013-09-09
  • 淺談c++中“::”和“:” 冒號的意思

    淺談c++中“::”和“:” 冒號的意思

    這篇文章主要介紹了淺談c++中“::”和“:” 冒號的意思,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-06-06
  • 純C語言:折半查找源碼分享

    純C語言:折半查找源碼分享

    這篇文章主要介紹了純C語言:折半查找源碼,有需要的朋友可以參考一下
    2014-01-01
  • C語言數(shù)據(jù)結(jié)構(gòu)算法之實現(xiàn)快速傅立葉變換

    C語言數(shù)據(jù)結(jié)構(gòu)算法之實現(xiàn)快速傅立葉變換

    這篇文章主要介紹了C語言數(shù)據(jù)結(jié)構(gòu)算法之實現(xiàn)快速傅立葉變換的相關(guān)資料,需要的朋友可以參考下
    2017-06-06
  • C語言源碼實現(xiàn)俄羅斯方塊

    C語言源碼實現(xiàn)俄羅斯方塊

    這篇文章主要為大家詳細介紹了C語言源碼實現(xiàn)俄羅斯方塊,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-06-06
  • 仿寫C語言string.h頭文件檢驗字符串函數(shù)

    仿寫C語言string.h頭文件檢驗字符串函數(shù)

    這里給大家分享的是一個C語言string.h頭文件檢驗字符串函數(shù)的仿寫,非常的簡單實用,小編覺得這篇文寫的還不錯,希望能夠給你帶來幫助
    2021-11-11

最新評論