【结构体】结构变量的定义与初始化
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.结构变量的初始化
#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;};
【结构体】结构变量的定义与初始化相关推荐
- 结构体指针变量的定义
最近在STM的GPIO结构体定义中看到源代码的时候,顺便复习下结构体指针变量的定义及typedef 的使用. 1.结构体类型定义 定义方式1: Typedef struct LNode {int da ...
- 【Struct(结构体)杂谈之二】名不正则言不顺---Struct(结构体)的声明、定义及初始化
Struct(结构体)的声明.定义及初始化 上一篇里我们讲了为什么我们要引入Struct这个数据类型,我们了解到Struct是一种聚合数据类型,是为了用户描述和解释一些事物的方便而提出的,Struct ...
- 结构体指针变量含义,结构体指针函数
最近在STM的GPIO结构体定义中看到源代码的时候,顺便复习下结构体指针变量的定义及typedef 的使用. 1.结构体类型定义 定义方式1: Typedef struct LNode { int d ...
- 【C 语言】结构体 ( 结构体类型变量初始化 | 定义变量时进行初始化 | 定义隐式结构体时声明变量并初始化 | 定义普通结构体时声明变量并初始化 )
文章目录 一.结构体类型变量初始化 1.定义变量时进行初始化 2.定义普通结构体时声明变量并初始化 3.定义隐式结构体时声明变量并初始化 二.完整代码示例 一.结构体类型变量初始化 1.定义变量时进行 ...
- go结构体初始化_go语言基础之结构体普通变量初始化
1.结构体 1.1.结构体类型 有时我们需要将不同类型的数据组合成一个有机的整体,如:一个学生有学号/姓名/性别/年龄/地址等属性.显然单独定义以上变量比较繁琐,数据不便于管理. 结构体是一种聚合的数 ...
- MDK keil中在定义一个结构体的时候加点后面不出现结构体当中变量的提示
MDK keil中在定义一个结构体的时候加点后面不出现结构体当中变量的提示 解决办法: 1.确保已经将顶层头文件stm32f10x.h添加至当前你所写的文件内: 2.检查你自己写的文件是否已经加载到工 ...
- 【C 语言】结构体 ( 结构体类型定义 | 结构体类型别名 | 声明结构体变量的三种方法 | 栈内存中声明结构体变量 | 定义隐式结构体时声明变量 | 定义普通结构体时声明变量 )
文章目录 一.结构体类型定义 二.结构体类型别名 三.结构体类型变量声明 1.使用结构体类型 ( 别名 ) 声明变量 2. 定义隐式结构体时声明变量 3.定义普通结构体时声明变量 二.完整代码示例 一 ...
- c语言学习笔记【结构体02】结构体指针变量与结构体变量的函数参数,C语言学习笔记结构体02结构体指针变量与结构体变量的函数参数.docx...
C 语言学习笔记[结构体02]结构体指针变量与结构体变量 的函数参数 C 语言学习笔记之结构体指针变量一提指针,那可 是 C 语言的核心了,有多少学子曾拜倒在指针的脚下.单纯的说指针,其实并不难,但是 ...
- 结构体之引用结构体成员变量
引用结构体成员变量 一个结构体包含一个或者多个成员变量,在实际使用中,就需要对其成员变量进行引用,对于一个已经定义了的结构体变量和一个指向该结构体的指针变量. 可以用一下三种情况引用结构体 成员变量. ...
- 11【C语言 趣味算法】个人所得税问题(结构体应用):结构体的声明、定义结构体类型的三种方法等
Contents 一.Review 二.New Problem:Personal income tax issues(个人所得税问题) 2.1 Description of the problem 2 ...
最新文章
- NAR:psRobot-植物小RNA分析系统
- 内网渗透-域内信息收集
- zoj 3632 Watermelon Full of Water
- JasperReports JSF插件用例系列
- GitHub的基础使用入门
- lnmp mysql 远程访问_LNMP环境下 远程连接mysql数据库
- 线性表:2.线性表的顺序存储结构--顺序表及C语言实现
- [摘译]js内存泄漏常见的四种情况
- python lambda菜鸟教程_Python - lambda函数
- Linux驱动开发流程
- 实现elementUI多语言切换
- ndoutils2.2.0(ndo2db)中文乱码问题解决
- 微信公众号封面一键生成器-续
- 2.1 电子计算机的兴起
- C:谈谈内存分配中的(.data)段和(.bss)段的区别?为什么要分.data段和.bss段?
- unity-shader-基于图像的光照IBL
- touchGFX综合学习五、touchGFX加载外部(SDCARD、SPI FLASH等)字体显示,包括中文
- Jetson-nano:制作TF卡启动
- 打得京东当当响 | 一点财经
- Python 数学运算库Numpy入门基础(一)创建数组
热门文章
- REST/RESTFUL详解-转载
- SAP FICO付款及清账
- 简单解释op(面向过程procedure- oriented)与oo(面向对象object-oriented)
- python标准库不需要导入即可使用其中的所有对象和方法_Python编程及应用-中国大学mooc-题库零氪...
- Linux 服务器自动连接校园网,selenium + geckodriver + firefox浏览器
- 删除MySQL表的SQL语句-DROP-TABLE-简介
- JSP标签的简单使用
- 问题 M: 【字符串】贝贝的数学课
- 如何从JavaScript中的数组替换元素?
- 2017-03-27Oracle故障gc buffer busy acquire导致数据库不可用