7.1.2 结构体变量的定义
C 语言中,定义结构体变量的方式有 3 种。
1.先定义结构体类型,再定义结构体变量
这种方式是最普遍的,和定义基本数据类型的变量一样,根据定义好的结构体类型来定义出该类型的结构体变量。例如:
struct Person p1;
定义了 struct Person 类型的变量 p1。需注意的是,这儿的数据类型为“struct Person”,而不是单独的“Person”。也就是说,结构体类型不光是类型名字本身,前面还需要加上“struct”关键字。
2.在定义结构体类型的同时定义结构体变量
我们可以在定义结构体类型的同时定义出该类型的结构变量。例如:
定义结构体类型 Person 时,在大括号与分号之间,直接定义出了该结构体类型的变量 p2。
3.定义无名结构体类型变量
这种方式与第 2 种方式有些类似,也是在定义结构体类型时定义结构体变量。例如:
在定义结构体类型时,在“struct”关键字之后,并没有指定类型名,而是直接跟着大括号。在大括号和分号之间定义了该结构体类型的变量 p3。
在了解结构体变量的 3 种定义方式之后,读者可能会问,这 3 种定义方式之间有何不同?我们到底应该采用哪种定义方式呢?
第 1 种方式稍显麻烦,但可以定义出局部的结构体变量或是全局的结构体变量;第 2 种方式和第 3 种方式比较快捷,但由于是在定义结构体类型的同时来定义结构体变量,因此,所定义的都是全局的结构体变量。最后,由于第 3 种方式定义出来的是无名的结构体类型,因此,在结构体类型定义之外的地方,是无法再定义出该类型的变量的。
当我们想定义一个局部的结构体变量时,就需要选择第 1 种方式;当我们想要非常快捷地定义出全局的结构体变量时,就可以选择第 2 种方式;当我们不想在定义结构体类型之外的地方进行结构体变量定义时,就应该选择第 3 种方式。
在定义结构体变量时,也可以同时定义多个,只需在变量名之间用逗号分隔即可,例如:
struct Person p4, p5; //定义两个 struct Person 类型的变量 p4、p5
或是:
亦或是:
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论