gcc 复杂结构体 初始化_嵌入式开发《C语言(八:(2)2分钟回顾“结构体”零碎知识?》...

在文章 嵌入式开发《C语言(八:(1)2分钟搞懂“结构体”有何优势?》中介绍了结构体的概念以及结构体有何优势。这篇文章将介绍关于结构体的零碎知识点,学会了这些零碎知识,才能走得更远。

(1)结构体的定义和初始化

1)定义:在定义时必须列出所有成员变量(包含类型和名字),一定不要对这些成员变量进行赋值操作。如下代码所示,定义一个struct student的结构体类型 其中name age grade作为结构体的成员

struct student{char name[20];int age;float grade;};

这种是标准形式。也可以

struct {char name[20];int age;float grade;};

常用的是第一种类型,原因是student其实是一个标签,将成员name、age、grade绑定在一起,只需要声明一次,就可以直接用struct student定义多个同一类型的变量。

e456a667643f6178bd9ac808f94d9061.png

2)初始化:有2种方法一种是先定义后赋值。另一种是定义的时候就初始化

比如初始化名字名字为zhangsan 年龄为18 成绩为59.9的学生。其中s1是struct student类型的结构体变量,与前面所提到的变量类似。

第一种:先定义再赋值

struct student s1; // 定义结构体变量s1s1 = {“zhangsan”, 18, 59.9};// 给s1赋值

第二种:定义的同时初始化

struct student s1 = {“zhangsan” 18, 59.9};// 与上面一样

为什么需要初始化?当然是为了后续使用这个结构体,如果不进行初始化操作,有时无法确保这个结构体变量中的内容确定是多少,这涉及到变量在内存中的存储方式。

(2)如何访问结构体成员变量?

有2种方式:直接访问和间接访问

1)直接访问:通过 点(.)操作符

拿前面的例子将:定义变量 struct student s1 ,如果要访问age成员,可以使用s1.age 访问 name可以s1.name。

 struct student s1 = {"zhangsan
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值