1.结构变量的定义

声明了结构类型后,还需要定义结构变量,以便在程序中引用它。

结构变量和其他变量一样,必须先定义后使用

1)先定义结构类型,再定义结构变量

struct books
{   int bno;char  bname[20],field[10],author[10],publisher[30];float price;
};
struct books book1,book2;

2)定义结构类型的同时定义结构变量

struct books
{ int bno;
char name[20],field[10],author[10],publisher[30];
float price;
}book1,book2;

3)直接定义结构变量

struct
{   int bno;char bname[20],field[10];float price;
}book1,book2;

注意:方式(3)中没有给出结构名,在此定义语句后面无法再定义这个类型的其他结构变量。

2.结构变量的初始化

(1)结构变量在定义的同时也可以进行初始化。
(2)结构变量初始化的一般形式是在定义变量的后面加上 ={ 初值表列 };
#include<stdio.h>
int main()
{   struct books        /*结构类型*/{   int bno;char bname[20],field[10],author[10],publisher[30];float price;};struct books bk1={ /*初始化*/1001,"c programming","computer","xuwei","renminyoudianpress",39.0};printf("bno=%d\nbname=%s\nfield=%s\n",bk1.bno,bk1.bname,bk1.field);printf("author=%s\n",bk1.author);printf("publisher=%s\nprice=%f\n",bk1.publisher,bk1.price);return 0;
}

注意:

1)对结构变量初始化时,需要按照其成员出现的顺序对每个成员依次赋值,不能跳过前面的成员给后面的成员赋值,例如下面的用法是错误的。

                (上面的代码框里初始化时就可看出一一对应关系)

2)不能在结构内部给成员赋初值,例如下面的用法是错误的。

 struct books{  int bno=1001;char bname[20]="c programming";char field[10]="computer";char author[10];char publisher[30];float price=23;};

【结构体】结构变量的定义与初始化相关推荐

  1. 结构体指针变量的定义

    最近在STM的GPIO结构体定义中看到源代码的时候,顺便复习下结构体指针变量的定义及typedef 的使用. 1.结构体类型定义 定义方式1: Typedef struct LNode {int da ...

  2. 【Struct(结构体)杂谈之二】名不正则言不顺---Struct(结构体)的声明、定义及初始化

    Struct(结构体)的声明.定义及初始化 上一篇里我们讲了为什么我们要引入Struct这个数据类型,我们了解到Struct是一种聚合数据类型,是为了用户描述和解释一些事物的方便而提出的,Struct ...

  3. 结构体指针变量含义,结构体指针函数

    最近在STM的GPIO结构体定义中看到源代码的时候,顺便复习下结构体指针变量的定义及typedef 的使用. 1.结构体类型定义 定义方式1: Typedef struct LNode { int d ...

  4. 【C 语言】结构体 ( 结构体类型变量初始化 | 定义变量时进行初始化 | 定义隐式结构体时声明变量并初始化 | 定义普通结构体时声明变量并初始化 )

    文章目录 一.结构体类型变量初始化 1.定义变量时进行初始化 2.定义普通结构体时声明变量并初始化 3.定义隐式结构体时声明变量并初始化 二.完整代码示例 一.结构体类型变量初始化 1.定义变量时进行 ...

  5. go结构体初始化_go语言基础之结构体普通变量初始化

    1.结构体 1.1.结构体类型 有时我们需要将不同类型的数据组合成一个有机的整体,如:一个学生有学号/姓名/性别/年龄/地址等属性.显然单独定义以上变量比较繁琐,数据不便于管理. 结构体是一种聚合的数 ...

  6. MDK keil中在定义一个结构体的时候加点后面不出现结构体当中变量的提示

    MDK keil中在定义一个结构体的时候加点后面不出现结构体当中变量的提示 解决办法: 1.确保已经将顶层头文件stm32f10x.h添加至当前你所写的文件内: 2.检查你自己写的文件是否已经加载到工 ...

  7. 【C 语言】结构体 ( 结构体类型定义 | 结构体类型别名 | 声明结构体变量的三种方法 | 栈内存中声明结构体变量 | 定义隐式结构体时声明变量 | 定义普通结构体时声明变量 )

    文章目录 一.结构体类型定义 二.结构体类型别名 三.结构体类型变量声明 1.使用结构体类型 ( 别名 ) 声明变量 2. 定义隐式结构体时声明变量 3.定义普通结构体时声明变量 二.完整代码示例 一 ...

  8. c语言学习笔记【结构体02】结构体指针变量与结构体变量的函数参数,C语言学习笔记结构体02结构体指针变量与结构体变量的函数参数.docx...

    C 语言学习笔记[结构体02]结构体指针变量与结构体变量 的函数参数 C 语言学习笔记之结构体指针变量一提指针,那可 是 C 语言的核心了,有多少学子曾拜倒在指针的脚下.单纯的说指针,其实并不难,但是 ...

  9. 结构体之引用结构体成员变量

    引用结构体成员变量 一个结构体包含一个或者多个成员变量,在实际使用中,就需要对其成员变量进行引用,对于一个已经定义了的结构体变量和一个指向该结构体的指针变量. 可以用一下三种情况引用结构体 成员变量. ...

  10. 11【C语言 趣味算法】个人所得税问题(结构体应用):结构体的声明、定义结构体类型的三种方法等

    Contents 一.Review 二.New Problem:Personal income tax issues(个人所得税问题) 2.1 Description of the problem 2 ...

最新文章

  1. NAR:psRobot-植物小RNA分析系统
  2. 内网渗透-域内信息收集
  3. zoj 3632 Watermelon Full of Water
  4. JasperReports JSF插件用例系列
  5. GitHub的基础使用入门
  6. lnmp mysql 远程访问_LNMP环境下 远程连接mysql数据库
  7. 线性表:2.线性表的顺序存储结构--顺序表及C语言实现
  8. [摘译]js内存泄漏常见的四种情况
  9. python lambda菜鸟教程_Python - lambda函数
  10. Linux驱动开发流程
  11. 实现elementUI多语言切换
  12. ndoutils2.2.0(ndo2db)中文乱码问题解决
  13. 微信公众号封面一键生成器-续
  14. 2.1 电子计算机的兴起
  15. C:谈谈内存分配中的(.data)段和(.bss)段的区别?为什么要分.data段和.bss段?
  16. unity-shader-基于图像的光照IBL
  17. touchGFX综合学习五、touchGFX加载外部(SDCARD、SPI FLASH等)字体显示,包括中文
  18. Jetson-nano:制作TF卡启动
  19. 打得京东当当响 | 一点财经
  20. Python 数学运算库Numpy入门基础(一)创建数组

热门文章

  1. REST/RESTFUL详解-转载
  2. SAP FICO付款及清账
  3. 简单解释op(面向过程procedure- oriented)与oo(面向对象object-oriented)
  4. python标准库不需要导入即可使用其中的所有对象和方法_Python编程及应用-中国大学mooc-题库零氪...
  5. Linux 服务器自动连接校园网,selenium + geckodriver + firefox浏览器
  6. 删除MySQL表的SQL语句-DROP-TABLE-简介
  7. JSP标签的简单使用
  8. 问题 M: 【字符串】贝贝的数学课
  9. 如何从JavaScript中的数组替换元素?
  10. 2017-03-27Oracle故障gc buffer busy acquire导致数据库不可用