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

描述

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

#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;
}
  • 这个时候,该结构体只有在主函数内,并且位于定义该结构体代码下方的的代码才能使用。
  • 而位于主函数外,或主函数内但位于定义结构体代码上方的代码是无法使用的。
打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分