c语言结构体嵌套,c语言结构体笔记?

营销圈公众号引导关注

在前面我们知道变量和数组都可以用来存储数据,变量可以用来存储单个数据,数组可以用来存储一组同类型的数据,但你有没有发现——它们都只适合单一属性的数据。那现实生活中,很多对象都是具有多属性的。例如一个人,都具有姓名、年龄、身高、体重等各种属性。那该如何是好呢?

c语言结构体嵌套,c语言结构体笔记?

别急,C语言中的结构体属于复合类型,它是其他数据类型构造出的一个新数据类型。结构体可以拥有众多的成员,而且各成员的数据类型也各不相同。因此,它是非常适合拥有多属性的对象进行存储。

结构体

Ⅰ,结构体类型的定义

定义格式为:

struct 结构体类型名{ 数据类型 成员名; 数据类型 成员名; ...}; //特别注意此处的分号不要遗忘

下面试着定义关于人的具体类型,例如:

struct Person{ char name[20]; //姓名 int age; //年龄 float height; //身高 float weight; //体重};

特别注意,上面定义的是一个结构体类型,它是不能用于存储数据的。就好像int 是一个数据类型,它是不能存储数据一样。如果要存储数据需要再定义出该类型的变量,如:

int a;

下面就说一下如何定义结构体类型的变量。

Ⅱ,结构体变量的定义

1,先定义结构体类型,再定义结构体变量,例如:

struct Person p1; //注意:这条语句是定义了struct Person 类型的变量p1。也就是说,结构体类型不光是类型名字本身,前面还需加上“struct”关键字。

2,在定义结构体类型的同时定义结构体变量,例如:

struct Person{ char name[20]; //姓名 int age; //年龄 float height; //身高 float weight; //体重} p2;

3,定义无名结构体类型变量,例如:

struct { char name[20]; //姓名 int age; //年龄 float height; //身高 float weight; //体重} p3;

Ⅲ,结构体变量的初始化与赋值

在定义结构体变量时,可以对其进行初始化。结构体变量的初始化方式与数组类似,使用大括号将初始值列表括起来。不过,列表中初始值的类型和顺序要与结构体成员的类型和顺序匹配。例如:

struct Person p1 = {"Tom",20,1.70f,60.1f};

Ⅳ,结构体成员的访问

C语言中,使用成员访问运算符(“.”)来访问结构体变量的各成员,我们常说的点运算说的就是它了:

结构体变量名.成员名

Ⅴ,结构体的大小

基本数据类型都有相对固定的大小,而结构体是符合数据类型,它的成员的类型、数量都是不固定的,但我们可以通过sizeof运算符来获取结构体的大小,例如:

printf("Size of the struct Person: %u bytes.n",sizeof(struct Person));

Ⅵ,结构体的嵌套

C语言中可以将一个结构体作为另外一个结构体的成员,即允许结构体的嵌套使用,如下例子:

//定义一个日期的结构体类型Datestruct Date{ short year; short month; short day;};//然后再Person的结构体中再添加一个Date结构体类型的成员birthday,用来表示人的生日struct { char name[20]; int age; float height; float weight; struct Date birthday; //生日} ;//初始化如下:struct Person ls={"lisi",20,1.52,45.5,{1999,8,28}};//访问birthday中的成员如下方式ls.birthday.year;ls.birthday.month;

2,结构体的运用

上面介绍了结构体类型与结构体变量之后,下面我们就要学着运用它了。不要让结构体孤零零的存在,要让它发挥应用的作用,应该让它与指针、数组、函数等结合起来,只有这样我们的代码才会灵活、高效、优美。

至于结构体与指针、结构体与数组、结构体与函数以及结构体与字符串的打打杀杀,亦或是人情世故,就留给我们自己去体会吧!

写在最后:对于准备学习C/C 编程的小伙伴,如果你想更好的提升你的编程核心能力(内功)不妨从现在开始!

编程学习书籍分享:

c语言结构体嵌套,c语言结构体笔记?

编程学习视频分享:

c语言结构体嵌套,c语言结构体笔记?

整理分享(多年学习的源码、项目实战视频、项目笔记,基础入门教程)

欢迎转行和学习编程的伙伴,利用更多的资料学习成长比自己琢磨更快哦!

对于C/C 感兴趣可以关注小编在后台私信我:【编程交流】一起来学习哦!可以领取一些C/C 的项目学习视频资料哦!已经设置好了关键词自动回复,自动领取就好了!

好了,这篇文章的内容营销圈就和大家分享到这里,如果大家网络引流和网络创业感兴趣,可以添加微信:Sum8338 备注:营销圈学习,我拉你进直播课程学习群,每周135晚上都是有实战干货的引流技术和创业项目课程免费分享!

好了,这篇文章的内容营销圈就和大家分享到这里,如果大家对网络推广引流和网络创业项目感兴趣,可以添加微信:Sum8338 备注:营销圈引流学习,我拉你进直播课程学习群,每周135晚上都是有实战的推广引流技术和网络创业项目课程分享,当然是免费学!

版权声明:本站部分文章来源互联网用户自发投稿,主要目的在于分享信息,版权归原作者所有,不承担相关法律责任。如有侵权请联系我们反馈邮箱yingxiaoo@foxmail.com,我们将在7个工作日内进行处理,如若转载,请注明本文地址:https://www.yingxiaoo.com/39927.html