首页技术文章正文

C语言如何定义结构体变量?

更新时间:2020-11-30 来源:黑马程序员 浏览量:

1577370495235_学IT就到黑马程序员.gif

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

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

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

struct 结构体类型名 结构体变量名;

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

struct Student stu1,stu2;

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

1606730051852_结构体变量的定义.png

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

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

Student stu1;     //错误,缺少struct关键字

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

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

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

struct 结构体类型名称
{
  数据类型 成员名1;
  数据类型 成员名2;
  …
  数据类型 成员名*n*;
 }结构体变量名列表;

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

struct Student{
  int num;  char name[10];
  char sex;
}stu1,stu2;

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


猜你喜欢:
c语言变量定义

c语言指针详解:什么是指针? 

C/C++培训课程 

分享到:
在线咨询 我要报名
和我们在线交谈!