C语言是面向过程的编程语言,不像面向对象语言一样,可以实例化一个对象,来存储对象相关的数据内容,例如一个学生有姓名、性别、学号、年龄等信息,而用C语言实现起来不可能一个一个得定义变量去存储,这时我们就可以用到struct——结构体。
解释
结构体(struct)是由一系列具有相同类型或不同类型的数据构成的数据集合,也叫结构。
在C的开发中,结构体使用的十分频繁,实际开发中,我们经常需要使用多种数据类型来修饰某个变量,但数据类型又不相同,数据间又彼此联系,我们就需要用一种新的数据类型来存储——结构体。
结构体使用方法
#include "stdio.h"
#include "string.h"
struct Student {
char name[10];
char sex[10];
int age;
int num;
};
int main()
{
Student lihua;
strcpy_s(lihua.name, "李华");
strcpy_s(lihua.sex, "男");
lihua.age = 18;
lihua.num = 05;
printf("姓名:%s\n", lihua.name);
printf("性别:%s\n", lihua.sex);
printf("年龄:%d\n", lihua.age);
printf("学号:%d\n", lihua.num);
return 1;
}
上面的代码中,先是声明了一个结构体名为Student的结构体,接着在main函数中,进行了结构体的实例化,emmm,说实例化可能不太准确,应该说创建了一个结构体变量lihua,并一一给其赋值。
姓名:李华
性别:男
年龄:18
学号:5
接着就打印输出以上内容。
是不是觉得这样对结构体变量的赋值过于繁琐,没关系,我们还有其他方式
#include "stdio.h"
#include "string.h"
struct Student {
char name[10];
char sex[10];
int age;
int num;
} lihua = { "李华", "男", 18, 05 };
int main()
{
/* Student lihua;
strcpy_s(lihua.name, "李华");
strcpy_s(lihua.sex, "男");
lihua.age = 18;
lihua.num = 05;*/
printf("姓名:%s\n", lihua.name);
printf("性别:%s\n", lihua.sex);
printf("年龄:%d\n", lihua.age);
printf("学号:%d\n", lihua.num);
return 1;
}
我们可以在声明结构体时直接对结构体变量进行赋值,可以看出以上的赋值方式比上一种方式更方便。
姓名:李华
性别:男
年龄:18
学号:5
打印结果也是一样的。