引入
前面,我们讲了如何建立一个结构体类型,但是并没有定义变量,系统也不分配具体的内存单元。我们可以采用以下3种方法定义结构体类型变量。
先声明结构体类型,再定义该类型变量
没有这个类型,就声明这个类型,然后再定义这个类型的变量。这种声明方式最常用和简单,声明和定义分离,声明后可以随时定义变量,比较灵活。
1 |
|
定义了 student_1 和 student_2 具有 struct Student 类型的结构。即也有学号、姓名、性别、年龄等成员。
定义结构体变量后,系统会为之分配内存单元。
在声明类型的同时定义变量
1 |
|
这种定义方式的原型为:
struct 结构体名
{
成员表列
} 变量名表列:
这种方式在写小程序的时候比较清晰,但是在写大程序的时候,往往还是声明和定义分开,所以这种方法用的不多。
不指定类型名而直接定义结构体类型变量
一般形式为:
struct {
成员列表
}变量名表列;
我们看到,上面并没有结构体名,所以我们无法分离的在后面根据结构体名定义变量,所以变量采用上面的定义方式,直接在声明变量的同时,定义变量。这种方式用的很少。
说明
- 结构体类型和结构体变量是不同的概念,类型是类型,变量是变量。变量是赋值和存取的。类型则不能。编译时类型不分配存储空间,变量是分配空间的。
- 结构体中的成员名可以与程序中其他变量名相同,例如
int a;
中的 a,也可以作为结构体变量的成员名来使用。 - 结构体变量中的成员(域)可以单独使用,作用和地位同普通变量相似。我们下节进行介绍。
尾巴
这是我的个人学习笔记,主要是应付考研复习使用,充斥着一些吐槽和个人观点,并不严谨,欢迎大家参考、指正。