C语言学习day14

本文详细阐述了C语言中的结构体存储与对齐规则,结构体作为函数参数的应用,结构体数组,共用体的概念及其内存布局,内存大小端的区别,以及枚举类型和位运算符的使用方法。
摘要由CSDN通过智能技术生成

1.结构体

1.1结构体的存储

内存对齐:
char   按照1字节对齐
 short  按照2字节对齐
 int    按照4字节对齐
 double 按照4字节对齐

   结构体整体的大小必须为最大基本类型长度的整数倍

1.2结构体作为函数参数

int AB(struct student *p)

{

}

1.3结构体数组

struct student s[5];

2.共用体

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

共用体所有成员变量共享同一片空间

内存大小端:

 1.内存小端:
   内存低地址存放低数据位
   内存高地址存放高数据位

   2.内存大端:
     内存低地址存放高数据位
    内存高地址存放低数据位

3.枚举

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

  1.枚举类型一般说明将来变量的值在给定的常量中选择其一作为它的值
    2.枚举常量的值总是前一个枚举常量的值+1,第一个默认为0值
    3.枚举常量默认为int类型,可以直接在程序中使用

4.位运算运算符

  &   按位与
    |   按位或
    ^   按位异或        相同为0 相异为1
    ~   按位取反
    >>  右移              右移n位 等价于 让该数 / 2^n 
    <<  左移              左移n位 等价于 让该数 * 2^n 

  按位异或实现数据交换:
        a = a ^ b;
        b = a ^ b;
        a = a ^ b;

  将变量的第n位置0:
        num = num & ~(1 << n)

  将变量的第n位置1:
        num = num | (1 << n)

  • 6
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值