结构体类型变量应用举例

现实生活中存在的大部分对象具有不同的属性,需要用不同的数据类型去描述。类如,一个公司员工的信息包括工号,姓名,性别,年龄,工资等。这些属性都是有联系的,因为他们属于同一个员工。为了能够表示同一个对象的多种属性,C语言给出了另一种构造数据类型——结构体。利用结构体能够将不同类型的数据组合在一起,用来描述上述具有不同属性的对象,从而解决实际问题。

程序中使用结构体,首先要对结构体进行定义。定义结构体类型的一般形式为:

struct 结构体名{ 数据类型 成员名1; 数据类型 成员名2; 数据类型 成员名3; … 数据类型 成员名n;};

“struct”是关键字,是结构体的标志;”结构体名”是用户定义的标识符,要符合C语言的标识符命名规则;各成员的数据类型可以是基本类型,也可以是构造类型。例如:

struct employee{ int num; char name[20]; char sex; int age; float salary;};

定义了一个结构体类型,结构体类型名是employee,该结构体由5个成员组成。

定义的结构体类型是一种数据类型。它和系统提供的标准数据类型(如int,char,float,double等)具有相同的地位和作用,只不过结构体类型需要用户自己指定而与,而标准数据类型由系统定义。

说明:

1)结构体类型的定义是程序语句,因此一定注意右花括号后面的分号不能丢。

2)结构体中的成员可以定义成不同的数据类型,他们不是变量,因此成员名可以与程序中其他变量同名,不同结构体中的成员也可以同名。

3)定义结构体类型,只是定义一种和基本类型地位相同的新的数据类型,不是定义的变量。

4)定义好一个结构体类型后,可以将其看作是与int,char,和float等数据类型一样的一个新的数据类型,其中并无具体数据,系统对之也没有分配实际的内存单元。为了能够在程序中使用结构体类型的数据,应当定义结构体类型的变量,并在其中存放具体的数据。

例1.输入一个学生的英语期中和期末成绩,计算并输出平均成绩。

#include void main(){ struct study //定义结构类型,类型名为study { float mid; float end; float average; }english; //定义结构体类型变量english scanf(“%f,%f”,&english.mid,&english.end); //输入期中,期末成绩 english.average=(english.mid+english.end)/2; //求期中,期末的平均成绩 printf(“average=%.1f”,english.average); //输出所求的平均成绩}

程序运行情况如下:

如果输入:90.5,80.5

结果如下:average=85.5

例2.建立两个学生的基本情况表,然后将其输出。

#include#include void main(){ struct stud //定义结构体类型 ,类型名为stud { int num; char name[20]; char sex; int age; float score; }student1={10001,”Liu”,’F’,18,75.0},student2; //定义结构体类型变量 student2=student1; //将student1变量中各成员的值逐个赋给student2中的相应成员 student2.num=10002; strcpy(student2.name,”Zhang”); //将字符串复制到student2.name成员中 printf(“student1:%d,%s,%c,%d,%.1f”,student1.num,student1.name,student1.sex,student1.age,student1.score); printf(“student2:%d,%s,%c,%d,%.1f”,student2.num,student2.name,student2.sex,student2.age,student2.score);}

程序运行结果如下:

student1:10001,Liu,F,18,75.0

student2:10002,Zhang,F,18,75.0

郑重声明:本文内容及图片均整理自互联网,不代表本站立场,版权归原作者所有,如有侵权请联系管理员(admin#wlmqw.com)删除。
(0)
用户投稿
上一篇 2022年6月23日
下一篇 2022年6月23日

相关推荐

  • ansible-变量2

    Facts变量Facts变量不包含在前文中介绍的全局变量、剧本变量及资产变量之内。 Facts变量不需要我们人为去声明变量名及赋值。 它的声明和赋值完全有Ansible 中的 se…

    2022年6月13日
  • 不踩雷5大人气洗面奶测评

    市面上常见的洗面奶有皂基洗面奶,还有氨基酸洗面奶。不同的肤质应该选择不同表活的洗面奶。油皮或者混合性皮肤,建议使用偏碱性皂基洗面奶,ph值在9-10,但是也不要频繁的试用。中性,敏…

    2022年7月22日
  • 智能手表测血压靠谱吗?智能手表怎么选购?

    说到当下最流行的是什么?智能手表当仁不让。智能手表经过十多年的升级到今天已经是非常完善了,大大地改变了我们的生活习惯。智能手表的功能越来越强大,有的智能手表甚至可以测血压,听到这里…

    2022年6月19日
  • 汽车配件小程序商城开发,助力线上市场布局

    自小程序问世以来,就迅速以其优点征服了广大商家,成为了当下各行业打开线上新市场的首选。汽配商家得益于不断发展的科技水平以及不断提高的生活水平,在近年来逐渐扩大了市场规模,开始向线上…

    2022年7月27日
  • 农田高标准,“高”在哪儿?

    高标准农田建设,我地前年冬启动此项目,去年夏完工。 这是我们村比较集中,田块较大,落差较小的沿河段的约一百几十亩旱涝保收的土地。首先,前年秋收后,村委会发出通知,今冬要搞田园化农田…

    2022年3月29日
  • 网上可以分期买手机吗(网上分期购买手机流程步骤)

    疫后首个线上购物狂欢节,各家手机厂商都使出浑身解数来促进销售。6月8日消息, 刚刚发布的的OPPO RENO4宣布全面支持花呗分期免息,最高可享受24期免息。 无独有偶,VIVO最…

    2022年4月11日
  • 区块链游戏研究报告:Web3.0框架下的游戏发展新方向

    游戏由于其虚拟属性、沉浸式的情景体验以及各种直指人心的互动玩法,天然就易聚集大批粉丝拥趸,社群基础夯实,这也造就了游戏堪称互联网时代的变现模式之首,孕育出了腾讯、暴雪、Steam等…

    2022年7月1日
  • 地月通信已实现,海洋通信却不行?- 科技袁人

    导言: 有一件惊人的事,大多数人可能没有意识到:人类在地球和月球乃至火星之间,已经完成了信号和图像的往返传输,对于近在咫尺的海洋却还做不到。 视频链接: https://v.dou…

    2022年8月23日
  • 虚拟数智人“艾雯雯”入职国家博物馆

    据新华网消息,7月22日,由国家博物馆与腾讯SSV数字文化实验室联合打造,腾讯云小微提供技术支持的数智人“艾雯雯”正式亮相,成为国家博物馆一位特殊的新员工。 “艾雯雯”这个名字,寓…

    2022年7月25日
  • 保定平均工资是多少钱?

    把保定的工资不足以支撑高房价高物价,但房价和物价就是高,第一,像样的企业太少了,市区有长城汽车,天威集团,其他的都不是很大了,保定gdp3000多亿,长城就贡献了近3分之一,可想而…

    2022年7月15日

联系我们

联系邮箱:admin#wlmqw.com
工作时间:周一至周五,10:30-18:30,节假日休息