【C语言】结构体基础|typedef结构体

举报
謓泽 发表于 2023/09/24 14:17:27 2023/09/24
【摘要】 【C语言】结构体基础|typedef结构体

结构体基础

结构是一些值的集合,这些值被称作是成员之间的变量。结构体 每个成员可以是不同类型变量。 

好,那我就先举个代码例子,让大家更容易去了解什么是结构体:

#include<stdio.h>
//描述一个学生
typedef struct student
{
    char name[20];//学生名字
    char sex[5];//学生性别
    char id[20];//学生学号
    short int age;//学生年龄
}student;//注意:对结构体类型进行重命名

int main(void)
{
    student mation =  { "小明", "男", "123456789", 18 };//typedef命名的新名字student
	printf("%s\n", mation.name); 
	printf("%s\n", mation.sex);
	printf("%s\n", mation.id);
	printf("%d\n", mation.age);

    return 0;
}
  1. struct —   结构体的关键字
  2. student — 结构体的标签,可以随意的替换看你指向的对象是谁了
  3. struct student —— 叫做结构体类型
  4. 大括号 { } 里面的内容被称作是:成员变量, 注意大括号后面必须要有分号,可以加成员列表,分号前面内容,可以是全局的结构体变量(一般都不会去使用),在代码中我们要尽可能的去少的使用全局变量。 
  5. 在函数中 mation —— 结构体类型的变量,当然这里我直接 student mation;是可以的,因为我用了typedef关键字,当然这个是可以随意定义结构体标签新的名字,不过我喜欢直接去定义结构体标签。
  6. 结构体类型的变量(mation)需要存放结构体类型的成员变量,所以我们可以要给上一个大括号直接去接收这些结构体变量,到了这一步,我们的结构体类型的初始化已经🆗了。注意:结构体类型的成员变量的数据类型使用不要弄错了以及主函数当中的打印的占位符记得要和全局变量一一对应才行。
  7. 最后,就是打印了。这里说下xxx.xxx在这个解释下什么意思:xxx.这个是结构体标签,通过这个后面的xxx是结构体当中类型的成员变量,也就是找到那个成员。

以上我讲的这一步骤,是定义:结构体的类型。那么在这里细心的朋友已经发现了,代码中结构体类型前面还加了一个typedef,那在这里我跟大家说下:typedef把结构体类型给重新的起了一个名字,在主函数中大家就可以知道。而,分号前我也写了注释。


typedef作用:

想了想,还是把typedef单独拿出来说一说吧

C 语言提供了 typedef 关键字,你可以使用它来为类型取一个新的名字。

typedef struct Books      ==        Book book              就像这样.

看到这里可能有些人会感觉和#deifne怎么感觉一样,那在这里我说下:

#define 是 C 指令,用于为各种数据类型定义别名,与 typedef 类似,但是它们有以下几点不同:

typedef 仅限于为类型定义符号名称,#define 不仅可以为类型定义别名,也能为数值定义别名,比如您可以定义 1 为 ONE。

typedef 是由编译器执行解释的,#define 语句是由预编译器进行处理的。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。