0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看威廉希尔官方网站 视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

jf_78858299 来源:C语言 作者:闫小林 2023-03-10 15:35 次阅读

C语言结构体类型

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

一般形式

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

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

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



类型名 成员名

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

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

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

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

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

  • 一般形式

struct 结构体名
{

成员表列
}变量名表列;

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

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

  • 一般形式

struct
{

成员表列
}变量名表列;

  • 指定了一个无名的结构体类型,它没有名字。

    显然不能再以此结构体类型去定义其他变量。

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

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

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

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

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

结构体变量名.成员名

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

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

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

C语言结构体变量案例

#include
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 after2.405 secondswith return value0
请按任意键继续. . .
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • C语言
    +关注

    关注

    180

    文章

    7604

    浏览量

    136714
  • C++
    C++
    +关注

    关注

    22

    文章

    2108

    浏览量

    73628
  • 结构体
    +关注

    关注

    1

    文章

    130

    浏览量

    10840
收藏 人收藏

    评论

    相关推荐

    嵌入式中C语言结构基本实现

    C语言中的数组只能允许程序员定义存储相同类型数据。但是结构C
    的头像 发表于 05-11 08:49 1017次阅读
    嵌入式中<b class='flag-5'>C</b><b class='flag-5'>语言</b><b class='flag-5'>结构</b><b class='flag-5'>体</b>基本实现

    漫谈C语言结构

    我放在下面。  在此,我会围绕以下2个问题来分析和应用C语言结构:  1. C语言中的
    发表于 11-15 15:59

    【干货】c语言基础语法——结构

    1、关于C语言结构的引入在实际问题中有时候我们需要几种数据类型一起来修饰某个变量。例如一个学生
    发表于 06-03 17:10

    C语言用typedef关键字定义结构类型

    本帖最后由 为了让生活美好 于 2019-9-12 15:05 编辑 #include #include #include #include /* 结构类型定义 */typed
    发表于 09-11 23:00

    如何利用C语言结构成员变量的地址?

    C语言,如何取结构成员变量的地址?发个列程好吗?我好研究一下
    发表于 11-04 03:31

    单片机C语言 -- 基于结构的面向对象编程技巧

    :系统初始化后,进入主循环,通过结构调用system文件的函数。2、结构类型定义
    发表于 02-04 21:48

    结构类型定义的一般格式

    它是将若干个不同类型的数据变量有序地组合在一起而形成的一种数据集合体。一般来说,结构中各个变量
    发表于 12-08 07:13

    结构变量定义与使用变量访问结构成员

    知识点回顾关于找最大公共子串的两种解题方法结构定义(3种)结构变量
    发表于 12-17 07:10

    结构定义、初始化和赋值

    结构(struct)是由一系列具有相同类型或不同类型的数据构成的数据集合,叫做结构。 在C
    发表于 11-20 09:29 5.4w次阅读

    C语言基础语法之结构

    C语言中数组允许定义可存储相同类型数据项的变量结构C
    的头像 发表于 11-08 08:35 3651次阅读

    C语言结构的声明与定义

    我们刚刚申请了一个名叫Info的结构类型,那么理论上我们可以像声明其他变量的操作一样,去声明我们的结构体操作,但是
    的头像 发表于 07-09 09:06 7473次阅读
    <b class='flag-5'>C</b><b class='flag-5'>语言</b>之<b class='flag-5'>结构</b><b class='flag-5'>体</b>的声明与<b class='flag-5'>定义</b>

    51单片机实战教程之C语言基础(四 C语言变量定义

    C语言中的特殊数据类型包含:结构、枚举、公用(联合)、数组、指针。特殊数据
    发表于 11-21 09:06 7次下载
    51单片机实战教程之<b class='flag-5'>C</b><b class='flag-5'>语言</b>基础(四 <b class='flag-5'>C</b><b class='flag-5'>语言</b><b class='flag-5'>变量</b><b class='flag-5'>定义</b>)

    C语言入门之结构指针

    C语言中,指向结构对象的指针变量既可以指向结构
    的头像 发表于 03-24 14:59 1040次阅读

    C语言结构完全笔记

    我们刚刚申请了一个名叫Info的结构类型,那么理论上我们可以像声明其他变量的操作一样,去声明我们的结构体操作,但是
    的头像 发表于 08-01 16:52 606次阅读
    <b class='flag-5'>C</b><b class='flag-5'>语言</b><b class='flag-5'>结构</b><b class='flag-5'>体</b>完全笔记

    结构与指针的关系

    C语言中,结构(Struct)是一种用户自定义的数据类型,它允许您将不同
    的头像 发表于 01-11 08:00 982次阅读
    <b class='flag-5'>结构</b><b class='flag-5'>体</b>与指针的关系