Logo

郎哥编程

第46讲:使用结构体

2026-04-14 19

在C语言里面,我们学过的数据基础类型有char、short、int、long等,并且还学习了通过数组来构造数据的集合。但是在不同的情况下,我们往往需要一些不同的数据类型组合成一种新的数据结构。

例如:编写一个学生信息管理程序时,就需要存储学生的信息,学生的信息包括学生名称、学号、性别、年龄等数据。学生信息都是不同类型的数据,描述一个学生的信息需要定义(声明)多个不同数据类型的变量,同时还需要一个数组来描述多名学生的信息。

C语言提供了一种可以自定义的数据类型,用来描述类似学生信息这样的结构化数据。定义结构体的语法为:

struct 结构体名{
     类型名1 成员名1;
     类型名2 成员名2;
      ……
      类型名n 成员名n;   
};

其中,struct是定义结构体的关键字,结构体名是结构体的名称,是合法的C语言标识符。结构体主体使用一对大括号封闭起来,在结构体主体内,可以定义多个结构体成员,每个结构体成员定义方式和变量的声明方式相同,成员之间用分隔符“;”隔开。

例如:学生信息结构体。

struct  STUDENT{
// 学生姓名
char* name;
// 年龄
int age;
// 学号
char* student_id;
};

上面定义了一个名称为STUDENT的结构体,定义结构体名称时,一般全部采用大写,当然也可以按照自己的喜好来命名,全部采用大写可以和变量名称区分开,结构体有name、age、student_id三个成员。

定义的结构体只是一种自定义的数据类型,结构体的使用和其它数据类型的使用完全相同,需要在程序中定义一个结构体变量。

例如:下面定义了结构体STUDEN的结构体变量student,STUDEN是结构体,student是结构体变量。

STUDEN  student;

也可以在定义结构体时,直接定义一个结构体变量。

struct  STUDENT{
// 学生姓名
char name[30];
// 年龄
int age;
// 学号
char student_id[20];
} student;

为了访问结构体的成员,C语言提供了成员访问运算符“.”。成员访问运算符是结构体变量名称和要访问的结构成员之间的一个“.”符号,案例10-1演示了访问结构体成员的使用方法。

例【1】 使用结构体练习

程序清单 sample.c

#include <stdio.h>
#include <string.h>
// 定义学生信息结构体
struct  STUDENT{
	// 学生姓名
	char* name;
	// 年龄
	int age;
	// 学号
	char* student_id;
} student;
// 程序主函数
void main()
{
	// 初始化结构体变量student
	// 访问结构体成员使用“.”运算符
	student.age = 21;
	student.name = "马汉";
	student.student_id = "0001";
	// 输出结构体变量student
	printf("学号:%s\n姓名:%s\n年龄:%d\n",student.student_id,student.name,student.age);
}

例1定义了结构体STUDENT,并声明了结构体变量student,在main()函数内初始化结构体变量student,并输出结构体变量成员信息。

 

代码在线纠错(通义千问 qwen-max)

支持粘贴多个代码文件,提交后由阿里云通义千问自动分析代码漏洞、语法错误、逻辑问题并给出修改建议。
您已解锁 AI 代码纠错功能,可正常使用!

评论区

登录 后发表评论
暂无评论