目录
九、结构体(基础)
定义:用于描述复杂对象,
9.1 创建结构体
比如:描述一个学生,需要的是,姓名+性别+年龄+学号。
代码9_1:创建一个学生结构体:
#include<stdio.h>
struct Student
{//创建结构体
char name[20];//用于存储姓名
char sex[10];//用于存储性别
short age;//用于存储年龄
int number;//用于存储学号
};
说明:
(1)创建结构体需要用到关键字struct,同时需要结构体名称;
(2)结构体中的变量在创建时均未存储,所以不用初始化,但数组中的元素个数必须为确定的;
(3)结构体创建结束后的分号不可少;
9.2 结构体初始化
创建好一个结构体后,在主函数中,我们需要再创建一个结构体变量,即申请空间来存储信息后,才能够初始化。
代码9_2,创建结构体变量并初始化:
#include<stdio.h>
struct Student
{
char name[20];
char sex[10];
short age;
int number;
};
int main()
{
//创建结构体变量st1、st2
struct Student st1={"张三","男",20,20211024};
struct Student st2={"李四",“男”,18,20212025};
return 0;
}
说明:
以上代码即完成了创建结构体变量以及初始化,st1、st2为结构体变量,类型是struct Student类型,初始化应使用大括号,其中字符串用双引号引起,数字不需要,并且初始化顺序与结构体中保持一致。
补:
字符串中,如果是字母字符串,每一个字母所占空间为一个字节;如果是文字字符串,每一个汉字所占空间为两个字节。
9.3 结构体变量的数据打印
打印结构体中的数据,就需要访问到结构体的数据并取出来。这时,我们就要用到操作符中没有介绍的两个:点操作符.和箭头操作符->(结构体成员访问操作符)。
#include<stdio.h>
struct Student
{
char name[20];
char sex[10];
short age;
int number;
};
int main()
{
struct Student st1 = { "张三","男",20,20211024 };
struct Student st2 = { "李四","男",18,20211025 };
struct Student* list = &st1;//list为指针变量,类型是struct Student*
printf("%s %s %d %d\n", st1.name, st1.sex, st1.age, st1.number);
printf("%s %s %d %d\n", (*list).name, (*list).sex, (*list).age, (*list).number);
printf("%s %s %d %d\n", list->name, list->sex, list->age, list->number);
return 0;
}
说明:
打印结构体变量中的数据使用的就是点操作符以及箭头操作符。
(1)点操作符:结构体变量.结构体成员,使用解引用符号时必须要有括号
(2)箭头操作符:结构体指针变量->结构体成员
(3)以上用法均为规定用法。
结构体基础我们就介绍到这里,点到为止。后期会有更加详细的介绍,值得一提的是,结构体的用处非常之大,比如后面会学习的数据结构,其中就使用了大量的结构体。
10、结语
到这里C语言基础篇就宣布完结了,掌握了基础后,相信对C语言有了初步的了解,希望在接下来的学习中再接再厉。