定义结构体的同时声明变量
#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
发布评论请先 登录
相关推荐
自定义头文件中的结构体变量总是赋值无效的原因?
自定义了一个头文件,里面包含一个结构体,#ifndef Parameterdef#define Parameterdef#endif//Global parameters and variables
发表于 07-20 14:10
请问结构体数组怎么声明?
试试typedefstruct node{ int date; int next;}linklist;话说哪位老司机解释下,结构体数组怎么声明
发表于 07-30 11:42
KIEL MDK关于头文件声明包含结构体变量函数出现错误问题
今天遇到的一个问题:我在一个头文件声明了一个结构体:然后再另一个函数写了一个函数并在.h里面声明:编译出现了以下错误:大概的意思是说我这个结构
发表于 04-18 11:36
PIC结构体及定义位元结构
PIC结构体及定义位元结构 extern volatile near unsigned char PORTB; // PORTB是一个字节(unsigned c
发表于 10-30 08:28
•2693次阅读
变量定义和声明的区别
我们在程序设计中,时时刻刻都用到变量的定义和变量的声明,可有些时候我们对这个概念不是很清楚,知道它是怎么用,但却不知是怎么一会事,下面我就简单的把他们的区别介绍如下:
发表于 11-17 08:38
•1w次阅读
评论