目录

九、结构体(基础)

9.1 创建结构体

 9.2 结构体初始化

 9.3 结构体变量的数据打印

 10、结语


九、结构体(基础)

       定义:用于描述复杂对象,

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语言有了初步的了解,希望在接下来的学习中再接再厉。