结构体可以让C语言创建新的类型出来
#include <stdio.h>
//定义结构体,结构体中包含三个成员变量:姓名、年龄、成绩
struct stu
{//成员变量
char name[20];//姓名
int age;//年龄
float score;//成绩
};
//定义另一个结构体,结构体中包含三个成员变量:书名、价格、编号
struct book
{
char name[20];//书名
double price;//价格
int id[30];//编号
};
int main()
{
struct stu s = {"张三", 20, 90.5};//结构体变量 s 的创建和初始化
printf("%s %d %f\n", s.name, s.age, s.score);
return 0;
}
s.name, s.age, s.score 这里用到的操作符是 . 操作符
结构体变量.成员变量
用于找到其成员
与之类似的操作符还有 -> 操作符
#include <stdio.h>
//定义结构体,结构体中包含三个成员变量:姓名、年龄、成绩
struct stu
{//成员变量
char name[20];//姓名
int age;//年龄
float score;//成绩
};
//定义另一个结构体,结构体中包含三个成员变量:书名、价格、编号
struct book
{
char name[20];//书名
double price;//价格
int id[30];//编号
};
int main()
{
struct stu s = {"张三", 20, 90.5};//结构体变量 s 的创建和初始化
printf("1.%s %d %f\n", s.name, s.age, s.score);
struct stu *ps = &s;// 结构体变量 s 的地址赋值给指针变量 ps
printf("2.%s %d %f\n", (*ps).name, (*ps).age, (*ps).score); // 指针变量 ps 指向结构体变量 s,通过指针访问结构体变量 s 的成员变量
printf("3.%s %d %f\n", ps->name, ps->age, ps->score); // 指针变量 ps 指向结构体变量 s,通过指针访问结构体变量 s 的成员变量
return 0;
}
操作符 ->
结构体指针 -> 成员变量
结构体指针 -> 成员变量 与 *(结构体指针).成员变量 的区别:
结构体指针 -> 成员变量:通过结构体指针指向的结构体变量直接找到它的结构体成员
*(结构体指针).成员变量:先对结构体指针解引用,找到结构体变量,再通过结构体变量找到其结构体成员。