📅  最后修改于: 2023-12-03 14:40:27.271000             🧑  作者: Mango
在C语言中,结构体是一种用户自定义的数据类型,可包含多个不同类型的数据成员。结构体的定义形式如下:
struct 结构体名 {
成员类型1 成员名1;
成员类型2 成员名2;
// ... 其他成员
};
其中,结构体名是标识符,用于标识这种数据类型。成员类型可以是任意的C数据类型,也可以是其他自定义的结构体。下面是一个简单的例子:
#include <stdio.h>
struct student {
int id;
char name[20];
float score;
};
int main() {
struct student stu1 = {20190101, "Tom", 85.5};
printf("id: %d\nname: %s\nscore: %.2f\n", stu1.id, stu1.name, stu1.score);
return 0;
}
结果输出:
id: 20190101
name: Tom
score: 85.50
共同体(union)是一种特殊的结构体,所有成员都共享同一片内存空间。定义形式与结构体类似,如下:
union 共同体名 {
成员类型1 成员名1;
成员类型2 成员名2;
// ... 其他成员
};
其中,成员类型可以是任何类型,不限于同一类型。下面是一个例子:
#include <stdio.h>
union test {
int a;
char b;
};
int main() {
union test t;
t.a = 97;
printf("t.a: %d\n", t.a);
printf("t.b: %c\n", t.b);
return 0;
}
输出:
t.a: 97
t.b: a
枚举在C语言中表示一组命名的常量,可以提高程序的可读性。定义形式如下:
enum 枚举类型名 {
标识符1 = 常量1,
标识符2 = 常量2,
// ...
};
其中,标识符是命名常量的名称,常量是整数常量。下面是一个例子:
#include <stdio.h>
enum week {
Mon = 1,
Tue,
Wed,
Thu,
Fri,
Sat,
Sun
};
int main() {
enum week today;
today = Mon;
printf("今天是星期%d\n", today);
return 0;
}
输出:
今天是星期1
以上就是C语言中的结构体、共同体、枚举的基本介绍和使用方法。在实际编程中,它们是非常有用的数据结构和类型。