结构体与共用体

        结构体和共用体(联合体)是自定义的数据类型,常用于处理非数值型数据,使用如:链表、队列、树等。

1. 结构体定义

        结构体是用其他类型构造出来的数据类型。结构体类型如下:

struct student
{
    int number;
    int *name;
    char sex;
    int age;
    float score;
}

        定义一个结构体变量如下:

struct student stu1;

stu1.age=32;
stu1.name="Zhong Guo";
stu1.number=06001;
stu1.sex='m';
stu1.score=87.0;

        结构体变量的定义也可以在定义结构体类型的同时进行。也可以定义结构体数组类型。定义与初始化可以分开进行,也可以在定义时初始化。

2. 指向结构体的指针

        指针可以指向整型、浮点型、字符型等基本类型变量,同样也可以指向结构体变量。指向结构体变量的指针的值是结构体变量的起始地址。指针可以指向结构体,也可以指向结构体数组。

        在结构体定义时,通常使用关键字typedef建立已经定义好的数据类型的别名。如:

    typedef struct student StuInfo;    //结构体类型struct student的别名就被定义为StuInfo,这样StuInfo就成为一个结构体类型。可用StuInfo来定义结构体变量和指针变量。如: 

StuInfo stu[3],*p;

        也可用typedef为基本数据类型建立别名,如:

        typedef int DataType;     // 这样,DataType就跟int等效。

        使用关键字typedef可以使程序有更好的可移植性。

3. 共用体及应用

        与结构体一样,共用体也是派生的数据类型。但共用体的成员共享同一个存储空间。定义如下:

union u
{
    char x;
    float y;
    double z;
}

        共用体使用覆盖技术,成员变量相互覆盖。同一时间只能存放一个类型成员。

        共用体变量的初始化不能在定义时进行,共用体也不能作为函数的参数。








  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值