芯源半导体CW32
直播中

刘敏

8年用户 1206经验值
私信 关注
[经验]

结构体声明与定义

1、声明

结构体的声明使用struct关键字,如果我们想要把我们的学籍信息组织一下的话,可以这样表示:

  • struct Info
  • {
  •     unsigned long identifier;//学号,用无符号长整数表示
  •     char name[20];//名字,用字符数组表示
  •     unsigned int year;//入学年份,用无符号整数表示
  •     unsigned int years;//学制,用无符号整数表示
  • }


这样,我们就相当于描绘好了一个框架,以后要用的话直接定义一个这种类型的变量就好了。

2、定义
我们刚刚申请了一个名叫Info的结构体类型,那么理论上我们可以像声明其他变量的操作一样,去声明我们的结构体操作,但是C语言中规定,声明结构体变量的时候,struct关键字是不可少的。


  • struct 结构体类型名 结构体变量名



不过,你可以在某个函数里面定义:


  • #include

  • struct Info
  • {
  •     unsigned long identifier;//学号,用无符号长整数表示
  •     char name[20];//名字,用字符数组表示
  •     unsigned int year;//入学年份,用无符号整数表示
  •     unsigned int years;//学制,用无符号整数表示
  • };

  • int main(void)
  • {
  •     /**
  •      *在main函数中声明结构体变量
  •      *结构体变量名叫info
  •      *struct关键字不能丢
  •      */
  •     struct Info info;
  •     ...
  • }



也可以在声明的时候就把变量名定义下来(此时这个变量是全局变量):



  • #include

  • struct Info
  • {
  •     unsigned long identifier;//学号,用无符号长整数表示
  •     char name[20];//名字,用字符数组表示
  •     unsigned int year;//入学年份,用无符号整数表示
  •     unsigned int years;//学制,用无符号整数表示
  • } info;
  • /**
  • *此时直接定义了变量
  • *该变量是全局变量
  • *变量名叫info
  • */

  • int main(void)
  • {
  •     ...
  • }


更多回帖

发帖
×
20
完善资料,
赚取积分