一、什么是结构体
在实质问题中,一组数据常常具有不同的数据类型;举例在学生信息登记表中,姓名为字符型,学号为整型或字符型,年岁为整型,性别为字符型,得益为整型或实型。因为数据类型不同,彰着弗成用一个数组来存放。
在C讲话中,不错使用结构体(Struct)来存放一组不同类型的数据。结构体(struct)指的是一种数据结构,是C讲话中团聚数据类型(aggregate datatype)的一类。结构体不错被声明为变量、指针或数组等,用以完毕较复杂的数据结构。结构体同期亦然一些元素的纠合,这些元素称为结构体的成员(member),且这些成员不错为不同的类型,成员一般用名字造访。
界说结构体的一般表情为:
struct 结构体名{
成员列表
伸开剩余84%};
在成员表列中不错是几种基本数据类型,也不错是结构体类型。
struct 类型名{} 迪士尼彩乐园 下载变量;后的分号弗成漏
举例用结构体来暗示学生信息:struct stu{
char *name; //姓名
int num; //学号
char sex; //性别
float score; //得益
};
二、结构体变量
结构体亦然一种数据类型,不错用来证实变量。举例:
struct stu stu1, stu2;
界说了两个变量 stu1 和 stu2,它们齐是 stu 类型,齐由 4 个成员构成。老成要害字struct弗成少。
结构体的各个成员在内存中是贯串存储的。stu1、stu2 的内存如下图所示:
也不错在界说结构体的同期界说结构体变量:
struct stu{
char *name; //姓名
int num; //学号
char sex; //性别
float score; //得益
} stu1, stu2;
淌若只需要 stu1、stu2 两个变量,也不错不写结构体名字:
struct{ //莫得写 stu
char *name; //姓名
int num; //学号
char sex; //性别
float score; //得益
} stu1, stu2;
这么作念书写浅陋,然而因为莫得结构体名,迪士尼彩乐园能提现么背面就没法用该结构体界说新的变量。
也不错用宏界说使一个象征常量来暗示一个结构类型,举例:
#define STU struct stu
STU{
char *name; //姓名
int num; //学号
char sex; //性别
float score; //得益
};
STU stu1, stu2;
面咱们会学习Windows编程,大部分结构体齐是这么界说的。
typedef和#define用法不同,致使不错衔尾起来无邪使用,使用时一定要老成两者的不同之处。
三、成员的赢得和赋值
在C讲话中,使用点号.来赢得结构体中的一个成员,一般要害为:
2024年12月30日至2025年1月2日
当我看到书籍封面时,我就知道这是一部关于很多人的故事的书,地方虽小,但故事却很大,它在不断地影响着我们的一切,当然包括灵魂,如果你是背包客或者是一个自驾游旅行者,应该体会感会更深。
结构变量名.成员名
如:
stu1.name; //第一个学生的姓名
stu2.score; //第二个学生的得益
赢得成员后,就不错对该成员进行赋值了,举例:
stu1.name = “Tom”;
stu2.score = 90.5;
除了不错对成员进行逐个赋值,也不错像数组雷同全体赋值,举例:
struct stu{
char *name; //姓名
int num; //学号
char sex; //性别
float score; //得益
} stu1, stu2 = { "Tom", 10, 'M', 90 };
不外全体赋值仅限于上头这么的情况,也便是界说结构体的同期声明变量。底下的写法是诞妄的:
stu2 = { "Tom", 10, 'M', 90 };
一个竣工的示例:
#include <stdio.h>
#define STU struct stu
int main(){
STU{
char *name; //姓名
int num; //学号
char sex; //性别
float score; //得益
};
STU stu1;
stu1.name = "James Bond";
stu1.num = 1;
stu1.sex = 'M'; //用M暗示男性,W暗示女性
stu1.score = 99;
printf("Hello everyone! My name is %s, a naughty boy, but with good scores(%.2f) and top No.(%d)!", stu1.name, stu1.score, stu1.num);
return 0;
}
发布于:四川省