C语言结构体详述

本文详细介绍了C语言中的结构体,包括结构体的定义、变量的使用、初始化及引用规则,以及结构体数组的定义、初始化和引用。结构体允许组合多种数据类型形成复杂的结构,便于管理和操作相关联的数据。
摘要由CSDN通过智能技术生成


前言

提示:这里可以添加本文要记录的大概内容:
例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。


提示:以下是本篇文章正文内容,下面案例可供参考

一、初识结构体

与数组不同,数组是存放同种数据类型。而结构体是用与描述内部之间具有关联关系且由多个项组合而成的数据,相当于其他高级语言中的“记录”。
如:

struct Teacher
{
   
int num;
char name;
char sex;
int age;
char title[20];
char addr[100];
};//注意这里分号不能少

在此定义了一个结构体类型,struet Teacher(定义结构体时,struet是关键字,不能省)表示这是一个结构体类型。该结构体类型变量由num、name、sex、age、title、addr等不同类型据项构成,各个数据项是该结构体的成员(或称分量),共同组成一个结构体。
注意:struct Teacher是程序员自定义的结构体数据类型的类型名,它和系统已定义的数据类型(如int、char、float、double等)一样可以用来定义变量。
声明一个结构体类型的一般形式为:
struct 结构体名
{
数据类型 成员1标识符;
数据类型 成员2标识符;

};

注意:“{ ”和“}”之间的内容称为成员表列。每个成员的数据类型可以是C语言基本数据类型、数组类型、指针类型,也可以是用户定义的其他构造数据类型。另外,成名字命名规则与变量名相同,都要遵循标识符的规则。

二,结构体变量的使用

结构体变量的定义
1.先定义结构体类型,再定义变量
我们可以先定义结构体类型,然后再利用结构体类型定义相应的变量。例如,上一个结构体类型 struct Teacher,可以像基本数据类型一样,用它来定义结构体变量(此struct可以省略)。例如:

 Teacher teacher 1,teacher 2;//定义 teacher 1和 teacher 2 两个结构体类型 Teacher 变也可以采用:
struct Teacher teacher 1 ,teacher 2;//定义teacher 1和teacher2两个结构体类型

Teacher上述两种方式都定义了teacher 1和teacher 2为Teacher类型变量,即它们都具有Teacher类型的结构,如下所示。
num name sex age title addr
teacherl 10010Wang Wei M 35 professor jiangxi
teacher2 10011Zhang Rui F 40 professorjiangxi
注意:struet关键字用于定义某种结构体类型。如定义Teacher为教师结构体类型,这构体类型的名字为Teacher,它属于类型的范畴,所以可以像使用int、double、float等基本类型一样,使用自定义的结构体类型来定义结构体变量。
2.在定义类型的同时定义变量
我们可以在定义结构体类型的同时,进行变量定义。例如:

struct Teacher
{
   
int num;//描述工号
char name[30]; //描述教工姓名
char sex;//描述教工性别
int age; //描述教工年龄
ehar title[20]//描述教工职称
char addr [100]//描述教工地址
}teacherl,teacher2;

这种方式的效果是:在定义Tacher结构体类型的同时,实现了teacher1和teaeher2两个结构体变量的定义,其中teacher1和teacher2的数据类型都是Teacher。这种方式定义的一般形式为:
struct 结构体类型名
{
数据类型 成员1标识符;
数据类型 成员2标识符;
}结构体变量名表列;

注意:结构体变量名表列中的变量名与变量名之间以逗号(”,”)分隔开。例如,结构体变量名表列(teacherl,teacher2,teacher3)中定义了3个Teacher类型的变量teacherl,teacher2和teacher3。
3.直接定义结构体类型变量
这种方式不定义结构体类型名称,而是直接在定义结构体类型的同时定义变量。其一般形式为:
struct
{
成员表列;
}变量名表列;

可以发现,在上述定义中没有给出结构体名,这种方式主要适用于将来不会再利用该结构体类型来定义新的变量的情况。
关于结构体类型有以下几点说明:
(1)类型与变量是不同的概念。对结构体变量来说,在定义时一般先

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值