问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

C语言结构体变量详解:定义、初始化与引用

创作时间:
作者:
@小白创作中心

C语言结构体变量详解:定义、初始化与引用

引用
搜狐
1.
https://m.sohu.com/sa/848441859_122121145

C语言中的结构体是一种用户自定义的数据类型,允许将不同类型的数据组合在一起。本文将详细介绍结构体类型的定义、变量的声明与初始化,以及成员的引用方式,并通过具体案例帮助读者更好地理解这一重要概念。

C语言结构体类型

C语言中允许用户自己建立由不同类型数据组成的组合型的数据结构,它称为结构体。在其他一些高级语言中称“记录”。

一般形式

struct 结构体名
{
    成员表列
};

结构体类型的名字是由一个关键字struct和结构体名组成而成的,结构体名是用户指定的,又称“结构体标记”,以区别于其他结构体类型。

花括号内是该结构体所包括的子项,称为结构体的成员,对各个成员都应该进行类型声明。

类型名 成员名

成员表列也称为域表,每一个成员是结构体中的一个域,成员命名规则与变量名相同。

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

先声明结构体类型,再定义该类型的变量

在定义了结构体变量后,系统会为之分配内存单元。根据结构体类型中包含的成员情况,在Visual C++中占63个字节。这种声明方式是声明类型和定义变量分离,在声明类型后可以随时定义变量,比较灵活。

在声明类型的同时定义变量

  • 一般形式
struct 结构体名
{
    成员表列
}变量名表列;
  • 声明类型和定义变量放在一起进行,能直接看到结构体的结构,比较直观。在写小程序时用此方式比较方便,但写大程序时,往往要求对类型的声明和对变量的定义分别放在不同的地方 ,以使程序结构清晰,便于维护。

不指定类型名而直接定义结构体类型变量

  • 一般形式
struct
{
    成员表列
}变量名表列;
  • 指定了一个无名的结构体类型,它没有名字。
  • 显然不能再以此结构体类型去定义其他变量。

结构体类型与结构体变量是不同的概念,不要混同,只能对变量赋值、存取或运算,而不能对一个类型赋值、存取或运算。

结构体类型中的成员名可以与程序中的变量名相同,但二者不代表同一对象,对结构体变量中的成员,可以单独使用,它的作用与地位相当于普通变量。

C语言结构体变量的初始化和引用

在定义结构体变量时可以对它的成员初始化,初始化列表是用花括号括起来的的一些常量,这些常量依次赋给结构体变量中的各成员。

可以引用结构体变量中成员的值,引用方式为:

结构体变量名.成员名

“.”是成员运算符,它在所有的运算符中优先级最高,如果成员本身又属于一个结构体类型,则要用若干个成员运算符,一级一级地找到最低的一级的成员。

对结构体变量的成员可以像普通变量一样进行各种运算,同类的结构体变量可以互相赋值。

可以引用结构体变量的成员的地址,也可以引用结构体变量的地址,结构体变量的地址主要用作函数参数,传递结构体变量的地址。

C语言结构体变量案例

#include<stdio.h>  

int main()  
{  
    struct Student{ //定义学生类结构体  
        int stuId=10;//学号  
        char sex='F';//性别  
    }stu1;  
    printf("%d\n",stu1.stuId);//输出学号  
    printf("%c\n",stu1.sex);//输出性别  
    return 0;  
}  

编译运行结果:

10  
F  
--------------------------------  
Process exited after 2.405 seconds with return value 0  
请按任意键继续. . .
© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号