黑马程序员IOS-C语言-结构体、枚举

——- android培训、java培训、期待与您交流! ———-


结构体

数组:只能由多个相同类型的数据构成

数组是一个特殊的结构体,可以由多个类型的数据构成

补齐算法(对齐算法)
结构体所占用的存储空间是最大成员字节数的倍数
通过下面的 sizePerson 和 sizeDate 可以验证

定义结构体变量的3种方式
1> 先定义类型,再定义变量(分开定义)
struct Student{
int age;
};
struct Student stu;

2> 定义类型的同时定义变量
struct Student{
int age;
}stu;
//struct Student stu1; 因为已经定义类型了可以直接创建

3> 定义类型的同时定义变量(省略类型名称)
struct {
int age;
}stu;

结构体类型的作用域
1> 定义在函数外面,全局有效
2> 定义在函数(代码块)内部,局部有效

注意点:
1.不允许对结构体本身递归定义
2.结构体内可以包含别的结构体
3.只能在定义变量的同时进行初始化赋值,否则需要结构体变量.成员单独赋值


结构体数组 : 基本和定义结构体相同
1>
struct Student{
    char *name;
    int age;
};
struct Student stu[5];

2>
struct Student{
char *name;
int age;
}stu[5];

3>
struct {
char *name;
int age;
}stu[5];

结构体作为函数参数:
    将结构体变量作为函数参数传递时,其实传递的是全部成员的值,也就是将实参中成员的值
    一一赋值给对应的形参成员。
    形参的改变不会影响到实参

指向结构体的指针

形式: struct 结构体名称 *指针变量名

有了指向结构体的指针,访问结构体成员的方式

1> 结构体变量名.成员名
2> (*指针变量名).成员名
3> 指针变量名 -> 成员名

枚举

枚举:当一个变量有几个固定的可能取值时,可以将这个变量定义为枚举类型

枚举是C语言中的一种基本数据类型,并不是构造类型,它可以用于声明一组常数。

格式: enum 枚举名{枚举元素1,枚举元素2,...};

枚举的定义方式 : 和构造体定义相似

1> 先定义枚举类型,再定义枚举变量
enum Season{spring, summmer, autumn, winter};
enum Season s;

2> 定义枚举类型的同时定义枚举变量
enum Season{spring, summer, autumn, winter} s;

3> 省略枚举名称,直接定义枚举变量
enum {spring, summer, autumn, winter} s;

枚举使用的注意:

1> C语言编译器会将枚举元素作为整型常量处理,称为枚举常量

2> 枚举元素对的值取决于定义时各枚举元素排列的先后顺序
enum Season {spring, summer, autumn, winter};
也就是说spring得值为0,summer的值为1,autumn的值为2,winter的值为3

3> 可以在定义枚举类型时改变枚举元素的值
enum Season {spring, summer = 3, autumn, winter};
各个值为:spring = 0,summer = 3,autumn = 4,winter = 5

——- android培训、java培训、期待与您交流! ———-

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值