一.引言
在 C 语言中,struct(结构体)是一种用户自定义的数据类型,用于将不同类型的变量组合在一起,形成一个整体。定义结构体时,既可以给结构体类型命名(即 “命名结构体”),也可以不命名(即 “匿名结构体”)。两者都能在定义结构体的同时声明变量并初始化,写法上颇为相似。它们的核心区别在于:命名结构体拥有明确的类型名称,因此可以在后续代码中重复使用该类型声明新的变量;而匿名结构体没有类型名称,只能在定义时一次性声明变量,无法在后续代码中复用该结构类型。本文将深入探讨匿名结构体的原理、使用场景、优缺点,并通过示例代码帮助你快速握。
二.命名结构体
为了便于后续对匿名结构体展开深入讲解,这里有必要先对命名结构体的相关内容进行梳理和说明。首先,我们谈论一下命名结构体的声明,变量的定义与初始化。
// 第一步:定义结构体类型
struct Point
{
int x;
int y;
};
// 第二步:声明并初始化变量
struct Point p1 = {10, 20};
struct Point p2 = {15, 25};
struct Point p3 = {17, 27};
命名结构体也可以在声明的同时对变量进行定义与初始化!!!
//一步到位
struct Point
{
int x;
int y;
} p1 = {10, 20};
如果需要在变量定义后赋值,只能逐个成员赋值:
struct Point
{
int x;
int y;
} p1,p2; // 定义结构体类型并声明全局变量p1
int main()
{
p1.x = 10;
p1.y = 20;
return 0;
}
显然,对于命名结构体来说,我们可以在声明之后创建多个相同类型的变量(注意这一点!)
三.匿名结构体
3.1 定义与初始化
匿名结构体,顾名思义,就是


4499

被折叠的 条评论
为什么被折叠?



