C语言构造数据类型

一、结构体类型
1、结构体类型的定义

    struct 类型名 
    {
        数据类型1 成员变量1;
        数据类型2 成员变量2;
        数据类型3 成员变量3;
        ...
    };

    结构体中的数据类型可以是:
        1.基本数据类型 short int long float double 
        2.数组        int a[5];  int a[2][3];
        3.构造的数据类型 struct date d; struct time t;

2、结构体变量的定义

    数据类型 变量名;

    struct datetime dt;

3、结构体元素的访问

    .   结构体变量类型访问成员变量使用.
    ->  结构体指针类型访问成员变量使用-> 
    最终类型是由成员变量的类型决定

4、结构体的初始化

    1.全部初始化
    struct student s = {"zhangsan", 'm', 18, 100};

    2.局部初始化
    struct student s = {
        .name = "zhangsan",
        .age = 19,
    };

    3.对结构体清0的方法:
    memset(&s, 0, sizeof(s));
    bzero(&s, sizeof(s));

5、结构体的存储

内存对齐:
1.结构体成员变量只能存放在内存地址为自身基本类型长度整数倍的内存单元中
2.结构体大小必须为最大成员变量类型的整数倍

二、共同体

union 公用名 {
    数据类型1 成员变量1;
    数据类型2 成员变量2;
    数据类型3 成员变量3;
    ..
};

注意:
    1.结构体每个成员变量空间独立
    2.共用体每个成员变量空间共享的

三、枚举类型

enum 枚举类型名 
{
    枚举常量1,
    枚举常量2,
    枚举常量3, 
    ..
};

注意:
    1.枚举变量的值在枚举常量中选择其一作为它的值
    2.枚举常量默认为int类型,第一个枚举常量的值默认为0,
      后续枚举常量的值为前一个枚举常量的值+1 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值