C语言 结构体是由单个名称表示的不同数据类型的一组变量。让我们举一个例子来理解 C 编程中结构的需要。
让我们说我们需要存储学生的数据,如学生姓名,年龄,地址,身份证等。这样做的一种方法是为每个属性创建一个不同的变量,但是当你需要存储多个学生的数据时,那么例如,您需要为每个学生再次创建这几个变量。以这种方式存储数据非常令人头疼。
我们可以通过使用结构轻松解决这个问题。我们可以创建一个具有name
,id
,address
和age
成员的结构,然后我们可以为每个学生创建这个结构的变量。这可能听起来令人困惑,不要担心我们会在示例的帮助下理解这一点。
如何在 C 编程中创建一个结构
我们使用 struct
关键字在 C 中创建结构。struct
关键字是结构化数据类型的简短形式。
这里struct_name
可以是你选择的任何东西。成员数据类型可以相同或不同。一旦我们声明了结构,我们就可以使用struct name
作为数据类型,如int
,float
等。
首先,我们将看到创建
struct
变量,访问struct
成员等的语法,然后我们将看到一个完整的示例。
如何声明结构的变量?
或者:
如何使用结构变量访问结构的数据成员?
如何为结构成员赋值?
有三种方法可以做到这一点。
1)使用点(.
)运算符
2)在一个声明中赋值所有成员
3)指定初始值设定项 – 我们将在本文末尾讨论这个问题。
C 中的结构示例
输出:
C 中的嵌套结构:另一个结构中的结构
您可以在另一个结构中使用结构,这是相当可能的。正如我上面所解释的,一旦你声明了一个结构, struct struct_name
就像一个新的数据类型,所以你可以把它包含在另一个结构中,就像其他数据成员的数据类型一样。听起来很混乱?别担心。以下示例将清除您的疑问。
C 编程中嵌套结构的例子
假设我们有两个这样的结构:
结构 1:stu_address
结构 2:stu_data
正如你在这里看到的那样,我在另一个结构中嵌套了一个结构。
结构内部结构的赋值(嵌套结构)
让我们以上面看到的两个结构为例来理解逻辑
如何访问嵌套结构成员?
使用.
运算符链。
假设你想从嵌套结构中单独显示城市:
在结构中使用typedef
typedef
使代码简短并提高了可读性。在上面的讨论中,我们已经看到,每次使用结构时我们都必须使用冗长的语法,这会使代码混乱,冗长,复杂且可读性降低。这个问题的简单解决方案是使用typedef
。它就像struct
的别名。
没有typedef
的代码
使用typedef
的代码
每次需要声明struct
变量时,不必使用struct home_address
,只需使用addr
,即我们定义的typedef
。
指定初始值设定项以设置结构成员的值
我们已经学会了两种设置struct
成员值的方法,还有另一种方法可以使用指定的初始化器来完成相同的操作。当我们只赋值结构的少数成员时,这很有用。在以下示例中,结构变量s2
只有一个赋值的成员。
输出: