——- 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培训、期待与您交流! ———-