自学Linux第十六天:结构体 、 共用体 枚举 位运算

结构体 、 共用体 枚举 位运算


结构体
结果体类型——用来描述复杂数据的一种数据类型
构造类型 用户自定义类型

结构体
描述一个结构体

语法:
struct:结构体类型名
{
成员列表
}


struct 关键字
    表示是在构造一个结构体的类型
结构体名
    用来描述结构体这个类型的一个名称
成员列表
    表示要描述的复杂数据 中用到的 具体成员变量
    定义方式与之前的变量的方式相同
    多个成员之间用分号隔开
最后有一个分号表示结束


eg:
struct student
{
    char name[30];
    int sno;
    float score
    char sex;
};//表示定义出一个数据类型


可以定义一个变量
定义指针变量
定义数组

注意“
1.结构体类型的使用过程
    a先定义出类型
    b定义变量
2定义变量
    struct 结构体名 变量名;
    结构体类型 :int
    
    结构体初始化
    struct student s = {};
初始化
    看每个成员变量 具体是什么数据类型
    根据各个成员变量 自身的数据类型 进行初始化
    初始化的顺序 按照定义的顺序 依次初始化
    
结构体变量的引用:
    结构体数据引用时 一般是引用的具体的成员数据
    引用的成员
    .成员运算符 “的”
    
使用:
    结构体变量名.成员名  printf("%d",s.sno);
    
    
    ->  指向结构体成员运算符
        结构体指针->  成员名
        结构体变量名.成员名
        
结构体类型的定义形式
形式1 先定义类型,然后定义变量
struct demo
{

};
struct demo d;
形式2 定义类型的同时 定义变量
struct demo
{

}d;
形式3 定义类型的同时 定义变量 可以省略结构体名
struct 
{

}d;只能用一次

结构体类型的大小:
内存对齐          
结构体对齐规则
结构体的对齐:
结构体的对齐规则: //内存地址的对齐
1.在32位的平台上,默认都是按4字节对齐的。 
2.对于成员变量,
   各自在自己的自然边界上对齐。
   char  -- 1字节 
   short -- 2字节 
   int   -- 4字节 
3.如果 成员变量中有比4字节大。      
  此时 整个结构体 按照4字节对齐。 //32位的平台 
4.如果 成员变量中没有有比4字节大。  
  此时 整个结构体 按照最大的那个成员对齐。   
  //32位的平台   
  //如果有超过4字节 ,按照4字节对齐
  //如果没有超过4字节的,则按成员变量中最大对齐 
 ----------------------------------------------
  //64位的平台
  //如果超过4字节的,按超过的最大的成员变量对齐 
  //如果没有超过4字节的,则按成员变量中最大对齐
-----------------------------------------------

同类型的结构体变量之间 ,可以相互赋值 
struct student s1;
struct student s2;
s2 = s1; 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值