结构体的基本使用
1. 我们前面学习了很多种的数据类型
int
double
float
char
数组
指针
……
不同的数据类型的变量是用来保存不同类型的数据的。
请声明1个变量,用来保存1个人的年龄。
unsigned char age = 18;
因为一个人的年龄不可能是负数,最多也就200岁,所以不需要申请太多的空间,也就是不需要用int 来声明,完全可以用一个正数的一个字节的变量来存储即可。
2. 如何保存同时保存多个不同的数据类型。使用结构体来创建新的数据类型,用来保存不同类型的数据。
例:
保存一个学生的信息
包括:
学生姓名
学生身高
学生体重
学生成绩
……
3. 结构体类型变量的定义
1)如何使用结构体来创建新的数据类型呢?
语法格式:
struct 新类型的名字
{
// 在这里面写上,你创建的新类型是由哪些变量联合而成。
// 我们也通常叫做结构体的成员!
数据类型1 小变量名称1;
数据类型2 小变量名称2;
数据类型3 小变量名称3;
};
例:
struct Student
{
char *name;
int age;
int score;
float height;
};
代表我们新创建了1个数据类型,这个数据类型的名称叫做:struct Student。
这个新的类型是由 1个char*、int、int、float的小变量联合而成的!
4. 结构体类型变量的声明
1)我们使用结构体仅仅是创建了1个新的类型而已,并没有变量。
而结构体的作用:是在指定的新的数据类型是由哪些小变量组合而成的。
2)所以我们还要声明新类型结构体类型的变量。
语法格式:
struct 新类型名称 变量名;
struct Student stu;
代表声明了1个struct Student类型的变量,变量的名字叫做stu!
这个时候stu才是变量,才会在内存中申请空间。
这个变量中,是由这个新的结构体类型规定的小变量组合而成的。
这个结构体答辩了是由结构体类型规定的小变量组合而成的!
3)注意:
struct Student stu;
这个时候stu结构体变量的类型是struct Student。而不是Student!
5. 结构体类型变量的初始化
1)意义:
为结构体变量中的小变量赋值!
2)初始化的语法:
结构体变量名称.成员名 = 数据;
代码:
// 定义一个结构体类型
struct Student
{
char *name;
int age;
int score;
float height;
};
// 结构体类型变量的声明
struct Student stu;
// 结构体类型变量的初始化
stu.name = “Jack”;
stu.age = 18;
stu.score = 100;
stu.height = 189.8;
// 输出学生信息
printf(“姓名:%s\n年龄:%d\n成绩:%d\n身高:%。2f\n”,
stu.name,
stu.age,
stu.score,
stu.height
);
6. 什么时候要定义一个结构体
当我们要保存1个数据。但是发现这个数据是一个大数据,因为这个数据是由其他的小数据联合起来组成的。
那么这个时候,
先使用结构体类自定义这个数据类型由哪些小变量合成的。然后再根据这个结构体类型声明变量来保存数据。
7. 使用结构体需要注意的小问题
1)一定要先使用结构体定义新的类型
然后才可以根据这个类型 声明这个类型的变量
2)结构体变量是1个变量,所以也可以像普通变量一样批量声明。
例:
struct Student xiaoHua,Jack,Rose,lilei;
3)结构体名称的命名规范:要求每一个单词的首字母要大写!
4)结构体类型定义的同时,去声明这个结构类型的变量。
例:
struct Student
{
char *name;
int age;
int score;
float height;
}stu,jack,rose,lilei;
5)匿名结构体!
就是这个结构体类型没有名称!
例:
struct
{
char *name;
int age;
int score;
float height;
}stu,jack,rose,lilei;
此时这个结构体就是我们的匿名结构体。而匿名结构要想声明这个类型的变量,那就必须在这个匿名结构体变量定义的同时去声明这个类型的变量。它是不能单独去声明这个类型的变量的。
|
|