C语言中什么叫结构变量

Python014

C语言中什么叫结构变量,第1张

1.结构体类型数据的定义方法和引用方法定义结构体:struct结构体名{成员列表};定义结构体类型的变量:有三种形式①定义类型时定义变量:struct结构体类型名{成员列表}变量名列表;②直接定义结构类型变量:struct{成员列表}变量名列表;③由已定义的结构体类型来定义变量:struct结构体类型名变量名列表;引用结构体类型变量:在定义了结构体类型变量后,采用下列方法引用结构体类型的变量:结构体变量名.成员名这里"."是成员(分量)运算符,它在所有的运算符中优先级最高。使用结构体时注意:(1)结构体类型和结构体类型变量是不同的概念,定义结构体类型变量时应先定义结构体类型,然后再定义变量属于该类型。(2)定义了—个结构体类型后,系统并没有为所定义的各成员项分配相应的存储空间。只有定义了一个结构体类型变量,系统才为所定义的变量分配相应的存储空间。结构体类型变量占用内存的字节数是所有成员占用内存长度之和。(3)结构体成员的引用。如果一个结构体中又嵌套一个结构体,则要访问一个成员时,应采取外层向内层逐级访问的方法。求采纳为满意回答。

结构体类型与其他数据类型相同,其变量要通过数据类型定义,但结构体类型是一种自定义数据类型,其变量定义方式与其他数据类型有些许区别。结构体变量的定义方式主要有两种,下面分别进行介绍。

1、先定义结构体类型,再定义结构体变量

先定义结构体类型,再定义结构体变量,这种结构体变量定义方式与其他数据类型相同,其语法格式如下:struct 结构体类型名 结构体变量名

以上一节定义的struct Student结构体类型为例,定义该结构体变量的示例代码如下:struct Student stu1,stu2

上述代码定义了2个结构体类型变量stu1和stu2,这时,stu1和stu2便具有了结构体特征,编译器会为它们分配一段内存空间用于存储具体数据,具体如下图所示。

771b37a16319f5ac70e0f3e8589834ea.png

struct Student结构体变量stu1、stu2的存储结构

需要注意的是,使用结构体类型定义变量时,struct关键字不可少,struct Student作为整体才表示一个结构体类型。缺少struct关键字,程序编译不通过。错误示例代码如下:Student stu1//错误,缺少struct关键字

编译器在编译上述代码时会报错,提示未定义标识符“Student”。

2、 在定义结构体类型的同时定义结构体变量

定义结构体类型的同时定义结构体变量,其语法格式如下:struct 结构体类型名称

{undefined

数据类型 成员名1

数据类型 成员名2

数据类型 成员名*n*

}结构体变量名列表

以定义struct Student结构体类型,并定义struct Student类型的变量stu1、stu2为例,具体示例如下:struct Student{undefined

int num char name[10]

char sex

}stu1,stu2

上述代码在定义结构体类型struct Student的同时定义了结构体变量stu1和stu2,该方式的作用与先定义结构体类型,再定义结构体变量作用相同,其中,stu1和stu2中所包含的成员类型都是一样的。