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

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

3天内不再提示

定义结构体的同时声明变量

CHANBAEK 来源:小木编程 作者: 小木之 2023-03-14 17:29 次阅读

定义结构体的同时声明变量

#include


struct book
{
  int id;
  char name[20];
  char type[20];
}book1; // 在这里直接声明变量

int main()
{
  scanf("%d %s %s",&book1.id,&book1.name,&book1.type);
  printf("编号:%d 名称:%s 类型:%s",book1.id,book1.name,book1.type);
  return 0;
}
输入:
1 西游记 四大名著
输出结果:
编号:1 名称:西游记 类型:四大名著
  • 在定义结构体的同时,我们在结构体末尾的 } 处直接声明所需变量,相比起在主函数内再用struct book book1; 来声明变量要方便快捷的多。
  • 注意变量名后要以分号结尾。

使用typedef,让结构体的使用更方便

#include


typedef struct book
{
  int id;
  char name[20];
  char type[20];
}book;

int main()
{
  book book1;
  scanf("%d %s %s",&book1.id,&book1.name,&book1.type);
  printf("编号:%d 名称:%s 类型:%s",book1.id,book1.name,book1.type);
  return 0;
}
  • 在不使用typedef的情况下,我们使用结构体来声明变量时需要加上struct,如:struct book book1。
  • 并且在有些情况下结构体的名字很长,当我们需要声明变量时,就会让代码看起来繁琐。
  • 这个时候,使用typedef为这个结构体定义一个使用它时的名字,我们就可以像使用 int 之类的变量类型一样,来使用结构体了。
  • 在本例中,我们将book结构体还用book来进行typedef定义。
  • 这样定义之后,我们就可以直接用“ book 变量名”来声明变量了。

定义结构体的位置:

  • 定义结构体的位置,也就是这段代码要放在什么位置才合适。

方式1 :将定义结构体的代码放在主函数前

#include


typedef struct book
{
  int id;
  char name[20];
  char type[20];
}book;

int main()
{
}
  • 我们可以这样理解,如果我们想要在主函数内使用结构体,那么我们在使用前一定要定义它,因为没有定义便不存在,不存在便无法使用。
  • 而程序的编译是自上而下进行的,因此定义结构体代码的位置要放在主函数前,否则就会报错。
  • 也就是说,在该结构体定义下面的所有代码与函数都可以使用该结构体,不止是主函数。

方式2 :将定义结构体的代码放在主函数内部

#include
 
int main()
{
  typedef struct book
  {
    int id;
    char name[20];
    char type[20];
  }book;
}
  • 这个时候,该结构体只有在主函数内,并且位于定义该结构体代码下方的的代码才能使用。
  • 而位于主函数外,或主函数内但位于定义结构体代码上方的代码是无法使用的。
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 函数
    +关注

    关注

    3

    文章

    4307

    浏览量

    62433
  • 代码
    +关注

    关注

    30

    文章

    4751

    浏览量

    68358
  • 变量
    +关注

    关注

    0

    文章

    613

    浏览量

    28330
  • 结构体
    +关注

    关注

    1

    文章

    130

    浏览量

    10833
收藏 人收藏

    评论

    相关推荐

    变量声明定义有什么区别和联系

    变量声明定义是编程中的两个重要概念,它们在语法和语义上有一些区别和联系。在本文中,我将详细介绍变量声明
    的头像 发表于 12-07 16:14 1065次阅读

    在头文件中加入外部结构变量声明后报错

    最近在整文件系统,但是在头文件中加入外部结构变量声明如extern FATFS *fs[2]就会提示结构
    发表于 10-11 08:55

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

    地方定义结构设计,而在其他地方定义实际的结构变量
    发表于 06-03 17:10

    定义头文件中的结构变量总是赋值无效的原因?

    定义了一个头文件,里面包含一个结构,#ifndef Parameterdef#define Parameterdef#endif//Global parameters and variables
    发表于 07-20 14:10

    请问结构数组怎么声明

    试试typedefstruct node{ int date; int next;}linklist;话说哪位老司机解释下,结构数组怎么声明
    发表于 07-30 11:42

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

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

    KIEL MDK关于头文件声明包含结构变量函数出现错误问题

    ​ 今天遇到的一个问题:我在一个头文件声明了一个结构:然后再另一个函数写了一个函数并在.h里面声明:编译出现了以下错误:大概的意思是说我这个结构
    发表于 04-18 11:36

    求助,结构变量定义引用问题求解

    |= mask; } 如以上语句,GPIO_Type是个结构定义定义了一个*base变量,在引用其中的成员时,是base->I
    发表于 10-27 06:06

    PIC结构定义位元结构

    PIC结构定义位元结构 extern volatile near unsigned char PORTB;   // PORTB是一个字节(unsigned c
    发表于 10-30 08:28 2693次阅读

    变量定义声明的区别

    我们在程序设计中,时时刻刻都用到变量定义变量声明,可有些时候我们对这个概念不是很清楚,知道它是怎么用,但却不知是怎么一会事,下面我就简单的把他们的区别介绍如下:
    发表于 11-17 08:38 1w次阅读

    结构定义、初始化和赋值

    type)的一类。结构可以被声明变量、指针或数组等,用以实现较复杂的数据结构结构
    发表于 11-20 09:29 5.4w次阅读

    C语言中变量声明定义以及extern的用法介绍

    变量声明不同于变量定义,这一点往往容易让人混淆。 l变量声明是告诉编译器,该
    发表于 11-21 10:59 12次下载

    C语言之结构声明定义

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

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

    定义结构变量后,系统会为之分配内存单元。根据结构类型中包含的成员情况,在Visual C
    的头像 发表于 03-10 15:35 1192次阅读

    结构成员变量的引用方法123

    这里采用的是常用的typedef关键字进行定义结构类型,可以看到student_t这种数据类型里面有4个成员变量,分别是学号、姓名、分数、年龄,这些成员
    的头像 发表于 07-08 14:45 2594次阅读
    <b class='flag-5'>结构</b><b class='flag-5'>体</b>成员<b class='flag-5'>变量</b>的引用方法123