当我们定义了结构体类型之后,可以使用结构体类型来定义变量,定义变量的方式与基本数据类型定义变量一样。假设我们定义了如下的结构体类型:

//定义结构体类型

struct reader

{

//定义结构体的成员;

char name[32];

int age;

int number;

};

我们可以用该结构体类型来定义变量,如下:

struct reader r1;   //定义结构体变量

我们可以在定义结构体变量的时候,对其进行初始化,如下:

//定义结构体变量, 并初始化;

struct reader r1 = {"www123", 100, 199};

完整的测试例子如下:

程序运行结果如下:

可以看到,我们在定义变量r1的时候,在后面接着赋值运算符“=”,然后,接着需要赋值的数据。在大括号中存放赋值的数据,每个数据之间是有逗号“,”分隔开。

我们还可以在定义结构体类型的时候就定义变量,同时对其进行初始化,如下:

//定义结构体类型

struct reader

{

//定义结构体的成员;

char name[32];

int age;

int number;

}r1, r2;

此时,在定义struct reader结构体类型的时候,同时定义了变量r1和r2。而且,可以在定义变量的时候初始化,如下:

//定义结构体类型

struct reader

{

//定义结构体的成员;

char name[32];

int age;

int number;

}r1 = {"AAABBB", 99, 886}, r2 = {"www123", 100, 199};

此时,定义struct reader结构体类型的时候,定义了变量r1和r2,而且,给变量r1、r2初始化数据。程序测试代码如下:

程序运行结果如下:

可以看到,我们在定义sruct reader结构体类型的时候,定义了变量r1和r2,并且对它们进行了初始化。

在定义结构体类型的过程中,我们可以省略“结构体类型名”,但是,这样定义的结构体类型就没有名称了,只能够在定义结构体类型的时候定义变量。例如:

//定义结构体类型

struct

{

//定义结构体的成员;

char name[32];

int age;

int number;

}r1, r2 = {"www123", 100, 199};

此时,定义了一个结构体类型,但是,该结构体类型没有名称,所以,只能够在定义结构体的时候,定义变量。可以在定义变量的时候进行初始化。

这种结构体定义类型的方式不是很推荐使用,我们只需要知道有这样的定义方式就可以了。

在写代码的时候,我们都更应该给每个变量有一个明确、准确的类型名称。可以通过类型名称和变量名称,就可以知道定义这个类型和变量的一样。这样的代码才是优秀的代码。

韦凯峰 Linux C/C++ 程序设计教程,Linux 系统编程,Openwrt 系统开发,微信:13926572996,QQ:1523520001,博客:www.mylinux.vip

结构体定义变量及初始化相关推荐

  1. C/C++中struct结构体定义变量的3种方法及初始化

    本博客整理自http://blog.csdn.net/zunfo/article/details/51494631 1.struct结构体定义 1.1.先定义结构体,然后再定义结构体变量 struct ...

  2. MySQL InnoDB事务结构体代码变量全攻略(附源码)

    写在前面 ​ InnoDB是MySQL的一个存储引擎,支持事务,支持非堵塞的一致性读,物理存储结构是Page,每个事务都有回滚日志,重做日志,事务还会有死锁检测,各种各样不同的锁等等. 翻看InnoD ...

  3. Go 学习笔记(14)— 结构体定义、实例化、初始化、匿名结构体、结构体访问、结构体作为形参、结构体指针

    Go 语言中没有 "类" 的概念,也不支持 "类" 的继承等面向对象的概念.Go 语言不仅认为结构体能拥有方法,且每种自定义类型也可以拥有自己的方法. 1. 结 ...

  4. 结构体的赋值和初始化与取出结构体变量中的成员

     1 /*结构体的赋值和初始化*/  2   3 # include <stdio.h>  4   5 struct Student   6 {  7     int age;  8    ...

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

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

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

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

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

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

  8. Go语言实例化结构体——为结构体分配内存并初始化

    转自: http://c.biancheng.net/view/66.html 结构体的定义只是一种内存布局的描述,只有当结构体实例化时,才会真正地分配内存.因此必须在定义结构体并实例化后才能使用结构 ...

  9. 从结构体、内存池初始化到申请释放,详细解读鸿蒙轻内核的动态内存管理

    摘要:本文带领大家一起剖析了鸿蒙轻内核的动态内存模块的源代码,包含动态内存的结构体.动态内存池初始化.动态内存申请.释放等. 本文分享自华为云社区<鸿蒙轻内核M核源码分析系列九 动态内存Dyna ...

最新文章

  1. linux常用的命令行
  2. 德国波恩大学于鹏组根系与微生物互惠方向招收博士研究生
  3. Redis cluster
  4. Magento2插件
  5. 基于ARM 构架(带MMU)的copy_from_user与copy_to_user详细分析
  6. Ajax — 评论列表
  7. lvalue-xvalue-prvalue
  8. 信息学奥赛一本通 1314:【例3.6】过河卒(Noip2002) | 1921:【02NOIP普及组】过河卒 | 洛谷 P1002 [NOIP2002 普及组] 过河卒
  9. 信息学奥赛一本通 1086:角谷猜想 | OpenJudge NOI 1.5 21
  10. 【Qt教程】1.4 - Qt5第一个控件 按钮QPushButton 指定父对象
  11. 通过stream去重_分享几种 Java8 中通过 Stream 对列表进行去重的方法
  12. Datalogic得利捷推出具有强大视觉系统功能的紧凑型智能相机P2X系列
  13. Bike Sharing Demand
  14. 零基础学UI设计难吗?
  15. 亚马逊服务器一键重装系统,如何使用Amazon Alexa轻松设置智能家居设备
  16. 基于UWB的室内SDS_TWR测距算法优化和定位算法融合的研究
  17. Windows日志浅析
  18. TA 认识 unity shader最基本的代码结构与书写01
  19. 工程机械远程监控系统
  20. 漂亮妹妹~~~~~~`

热门文章

  1. 夏姬霸整理的关于SSM及其整合的笔记
  2. SpringBoot+支付宝:实现沙箱支付全过程
  3. 企业能把员工转为劳务派遣工吗
  4. 登月6大危机曝光 阿波罗11号差点永留月球
  5. 安卓苹果手机调起QQ分享
  6. welcome-file-list 与SpringMvc 的 DispatcherServlet
  7. python flask热更新_flask常用操作
  8. 创建Vue单页面应用的3种方法
  9. Centos7 bg与fg命令
  10. bullet 库的概述