结构体的基础知识,位段,联合+枚举

一、。结构体基础知识

结构体属于聚合数据类型,C语言提供了两种聚合数据类型,数组和结构体。
数组里面保存的是同类型的元素的集合,它的每个元素是通过下标引用或者指针间接访问来选择的。
结构也是一些值的集合,这些值称为它的成员,但一个结构的各个成员可能具有不同的类型,他们需要通过名字去访问,那个成员都有自己的名字。

1.结构声明

举个例子:

struct SIMPLE
{
    int a;
    char b;
    flaot c;
};  //注意这里必须有一个分号

这个结构体包含三个成员变量,分别为int型的a,char型的b,float型的c,SIMPLE为一个标签。这个声明把标签SIMPLE和这个成员列表联系在一起。注意这只是一个声明,并没有提供变量列表,所以它并未创建任何变量。已经声明之后的结构体struct SIMPLE 类似于int,double,它相当于一个结构体类型的标识符,可以用它来创建结构体变量。比如:

struct SIMPLE x;
struct SIMPLE y[20],*z;

这里的x,y和z都是同一类型的结构体,可以互相赋值,比如z=&x。
需要注意的是,如果不使用标签去声明结构体,必须在结构体后面直接创建结构体变量。

struct{
    int a;
    char b;
    float c;
}x;
    struct{
    int a;
    char b;
    float c;
}y[20],*z;

这里虽然声明了两个结构体类型,而且他们的成员变量一摸一样,但是它们并不是同一类型的结构体变量,没有标签系统会认为这是两个不同类型的结构体,因此z=&x是非法的。而且这种结构体只能创建一次,无法创建第二个变量。

2.结构成员

结构体成员可以是标量、数组、指针甚至是其他结构体。
这里有一个更为复杂的例子:

struct COMPLEX
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值