C语言-结构体

结构体的定义

看了很多资料,都说结构的定义有多种方式,分的多了反而觉得乱,所以我个人觉得只要分两种就可以了:

  1. 一种是 不带typedef 的定义方式
  2. 一种是 带typedef 的定义方式

不带typedef 的定义方式

定义一个学生结构体

struct student{
    char no[20];       //学号
    char name[20];    //姓名
    char sex[5];    //性别
    int age;          //年龄
};
//定义结构体变量
struct student stu1,stu2;

注意:

  • 在定义结构体后面的分号不能少
  • 单独定义结构体变量时,关键字struct也要一起写,不过在C++中可以省略。

当然,也可以在定义结构体的时候直接定义结构体变量,以上的定义方式也可以写成以下方式

struct student{
    char no[20];       //学号
    char name[20];    //姓名
    char sex[5];    //性别
    int age;          //年龄
}stu1,stu2;

这种定义方式很简便,但是容易跟带typedef的定义方式搞混,注意这个结构体变量的位置,下面就来详细说明

带typedef的定义方式

因为第一种定义方式在单独定义结构体变量时需要带上关键字struct,人们觉得比较麻烦,所以就有了这样的一种定义方式。

用带typedef的定义方式重新定义上面的结构体

typedef struct{    //这时student结构体名可以不写
    char no[20];       //学号
    char name[20];    //姓名
    char sex[5];    //性别
    int age;          //年龄
}student;
//单独定义结构体变量
student stu1,stu2;

这里有几个区别以及注意点:

  1. 加上typedef后,struct后的结构体变量名可以省略不写
  2. 结构体大括号后的字符串是结构体的别名(比如上面的 student ),而不是结构体的变量
  3. 在单独定义的变量的时候,struct 可以省略
结构体成员的引用

结构体成员的引用也有两种方式,主要是以结构体变量的类型来决定的。

  1. 如果是一般的结构变量,那么可以通过“.”进行引用
  2. 如果结构变量是一个指针,那么必须通过“->”方式引用

如下所示:

一般结构变量引用结构体成员方式

student stu1;
//引用方式
stu1.no;
stu1.name;
stu1.sex;
stu1.age;

指针型结构体变量引用结构体成员方式

student* stu1;
//引用方式
stu1->no;
stu1->name;
stu1->sex;
stu1->age;

总结:

  1. 结构体是自定义的一种数据类型
  2. 结构体不能进行加减乘除,但是可以相互赋值
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值