C语言结构体使用,c语言中结构体的定义和使用

C语言结构体使用,c语言中结构体的定义和使用,详解C语言结构体的定义和使用

本文主要介绍了C语言结构的定义和使用,具有一定的参考价值。感兴趣的朋友可以参考一下,希望能帮到你。

目录

1.1:结构是用来做什么的?1.2:结构变量的基本定义格式1.3:结构变量的定义1.4结构变量的三种引用方法2。结构变量的使用(直接使用结构变量)2.1输出结果3。使用结构指针操作返回总分最低的学生信息3.1运行结果汇总:

1.1: 结构体用来干嘛?

在生活中,我们会遇到很多表格,比如你的学习成绩、姓名、学号、各科成绩、总分等等。这些是一些不同的数据类型。如果要在C语言中同时使用这些不同的数据,应该怎么做?可以使用结构变量,结构变量是C语言中的结构化数据。顾名思义,它们不同于int等基本原子变量。你可以把它们想象成这些基本变量的集合。

1.2:结构体变量的基本定义格式

结构名称

{

类型名称成员变量名;

类型名称成员变量名;

类型名称成员变量名;

};

注意:struct是一个关键字,是结构类型的描述性标识符。不能省略,结构名可以省略。当我们使用typedef struct时,我们省略它,不写结构名。

1.3:结构体变量的定义

(我们也可以在创建结构的时候声明变量,这里就不赘述了。我提一下我对结构变量的理解:第一,结构是各种基本数据类型的集合,就像我们定义集合s={1,2,3,4},s相当于一个结构变量,它包含了一个结构中的所有成员变量。我们可以引用和操作成员变量.)

结构名称a、b;//定义了两个结构变量。

strcut结构名称S[4];//定义一个包含四个元素的结构变量数组

Strcut结构名* p=a;//定义一个指向结构变量a的结构指针。

1.4结构体变量的三种引用方法

结构。成员名称

(*结构指针)。成员名称

结构指针-成员名//使用指针时推荐使用这个,因为数据结构中有很多这样的引用。

2.结构体变量的使用(直接使用结构体变量)

#包含stdio.h

/*结构的使用*/

int main()

{

strut Job _ exam//定义一个job _ exam的结构

{

无符号数字;//学生ID

char name[10];//名称

char gread _ class[10];//类

int英语;//英语成绩

int中文;//语言成绩

int匹配;//数学成绩

int Sum _ Exam//总分

};

结构job _ exam Most _ Exam _ Student//结构变量用于存储分数最高的学生的信息。

strut job _ exam some _ News[4]={ { 1901,'龙军','三二班',100,100,78},{1902,'李华','三二班',99,99,88},

{1903,'李明','三二班',99,98,90},{1903,'李广','三二班',99,98,80 } };//结构数组用于输入4个同学的信息。

for(int I=0;I 4;I) //依次计算每个学生的总分。

{

某学生新闻[我]。Sum_Exam=SomeStudent_news[i]。英语SomeStudent_news[i]。中国某学生_新闻[i]。匹配;

}

most _ Exam _ Student=some Student _ news[0];//如果第一个学生得分最高

如果(Most_Exam_Student。Sum_Exam SomeStudent_news[1]。Sum _考试)

{

most _ Exam _ Student=some Student _ news[1];

}

else if (Most_Exam_Student。Sum_Exam SomeStudent_news[2]。Sum _考试)

{

most _ Exam _ Student=some Student _ news[2];

}

其他

{

most _ Exam _ Student=some Student _ news[3];

}

Printf('总分最高的学生的信息为:\ n ');

Printf('编号班级的英语语文数学总分\ n ');

printf('%6u %7s %7s m m m m ',Most_Exam_Student.num,Most_Exam_Student.name,Most_Exam_Student.gread_class,Most_Exam_Student。英语,最_考_学生。语文,最_考_学生。匹配,最_考_生。sum _ Exam);

}

2.1输出结果

当用结构变量作为整体传递的函数参数时,应逐个传递所有成员。当成员中有数组时,传输的时间和空间开销会非常大,严重降低程序的效率。所以我们在使用结构变量时一般不直接传递结构变量,而是传递结构变量的地址,这样就减少了时间类空间开销。

3.使用结构体指针操作,返回总成绩最低的学生信息

#包含stdio.h

/*结构的使用*/

int Find _ sum exam(struct job _ exam * pa);//函数声明

strut Job _ exam//定义全局job _ exam的结构

{

无符号数字;//学生ID

char name[10];//名称

char gread _ class[10];//类

int英语;//英语成绩

int中文;//语言成绩

int匹配;//数学成绩

int Sum _ Exam//总分

};

strut job _ exam some _ News[4]={ { 1901,'龙军','三二班',100,100,78},{1902,'李华','三二班',99,99,88},/

{1903,'李明','三二班',99,98,90},{1903,'李广','三二班',99,98,80 } };

int main()

{

结构job _ exam Most _ Exam _ Student//结构变量用于存储分数最高的学生的信息。

for(int I=0;I 4;I) //依次计算每个学生的总分。

{

某学生新闻[我]。Sum_Exam=SomeStudent_news[i]。英语SomeStudent_news[i]。中国某学生_新闻[i]。匹配;

}

find _ Sumexam(Most _ Exam _ Student);//函数调用

Printf('总分最低的学生的信息为:\ n ');

Printf('编号班级的英语语文数学总分\ n ');

printf('%6u %7s %7s m m m m ',Most_Exam_Student.num,Most_Exam_Student.name,Most_Exam_Student.gread_class,Most_Exam_Student。英语,最_考_学生。语文,最_考_学生。匹配,最_考_生。sum _ Exam);

}

int _ sum exam(struct job _ exam * pa)//定义一个返回最高学生信息的函数。

{

* pa=some student _ news[0];//如果第一个学生的总分最高

for(int I=1;I 4;我)

{

if(pa-Sum _ Exam some student _ news[I].Sum _考试)

{

* pa=some student _ news[I];//这种转换只需要找到最高学生的地址,返回他的信息。

}

}

返回0;

}

3.1运行结果

总结:

建筑没有什么神奇的。集合包含各种数据类型。我们可以使用任何我们想添加的内容。本质和基础数据类型没什么区别。欢迎在评论区指出问题。

本文到此为止。希望能帮到你,也希望你能多关注我们的更多内容!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

相关文章阅读

  • c语言调用退出函数 c语言退出整个程序怎么写
  • c语言中怎么给函数初始化 c语言的初始化语句
  • c语言编写函数计算平均值 c语言求平均函数
  • 详解c语言中的字符串数组是什么,详解c语言中的字符串数组结构,详解C语言中的字符串数组
  • 表达式求值c++实现,c语言实现表达式求值
  • 看懂c语言基本语法,C语言详解,C语言的基本语法详解
  • 用c语言实现快速排序算法,排序算法设计与实现快速排序C语言,C语言实现快速排序算法实例
  • 深入解析c语言中函数指针的定义与使用方法,深入解析c语言中函数指针的定义与使用情况,深入解析C语言中函数指针的定义与使用
  • 描述E-R图,E-R图举例,关于C语言中E-R图的详解
  • 折半查找法C语言,折半查找算法(算法设计题)
  • 折半查找法C语言,c语言折半法查找数据,C语言实现折半查找法(二分法)
  • 扫雷小游戏c++代码设计,c语言扫雷游戏源代码,C语言实现扫雷小游戏详细代码
  • 怎样统计程序代码行数,C语言统计行数,C#程序员统计自己的代码行数
  • 基于c语言的贪吃蛇游戏程序设计,用c语言编写贪吃蛇游戏程序,C语言实现简单的贪吃蛇游戏
  • 图的两种遍历算法,图的遍历算法代码c语言,Python算法之图的遍历
  • 留言与评论(共有 条评论)
       
    验证码: