《代码大全》建议在变量定义的时候进行初始化,但是很多人,特别是新人对结构体或者结构体数组定义是一般不会初始化,或者不知道怎么初始化。

1、初始化

typedef struct _TEST_T {
        int i;
        char c[10];
}TEST_T;

TEST_T gst  = {1, “12345”};//可以初始化,设置i为1,s为一个字符串.

TEST_T gst  = {1};//初始化个数少于实际个数时,只初始化前面的成员。

TEST_Tgst  = {.c=“12345”};//有选择的初始化成员。

2、复合字面量。

gst = (TEST_T){122, "1256"};//这是一个赋值语句,也可以作为初始化。可以出现在程序的任何地方。

当然也可以使用复合字面量来初始化:

gst = (TEST_T){.i=122, .c="123"};

3、结构体数组

可以用多个大括号括起来:

TEST_T gst[10] = {{},{},{},{}}

也可以初始化其中的一个元素:

TEST_T gst[10] = {[2]={}, [3]={}}

也可以使用复合字面量:

TEST_T gst[10] = {[2].i=0, [3].i={}}

为什么要初始化:

1、对局部变量初始化可以防止随机值产生的危害。

2、对全局变量初始化可以告诉编译器,这是一个定义,而不是一个声明。(如果两个c中有相同的全局变量定义,且没有初始化,编译器会认为第二个是声明而不是定义。)

C语言中结构体的初始化相关推荐

  1. c语言中申请内存并初始化,c语言中结构体的定义、初始化及内存分配

    #include struct person { char *name; int age; }; int main() { //结构体可以定义在函数内,也可以定义到函数外 //相当于全局变量与局部变量 ...

  2. java发送c语言结构体_C语言中结构体直接赋值?

    在C语言中结构体变量之间可以进行赋值操作吗? 简单结构体的赋值 先说结论:一般来说,C语言中的结构体变量可以用另一个变量对其进行赋值或初始化.简单结构体(不包含指针成员)直接赋值没有问题. 我们先下面 ...

  3. C语言中结构体直接赋值

    FROM:http://codewenda.com/c语言结构体直接赋值/ 在C语言中结构体变量之间可以进行赋值操作吗? 简单结构体的赋值 先说结论:一般来说,C语言中的结构体变量可以用另一个变量对其 ...

  4. c语言结构体成员变量私有化,C语言中结构体变量私有化详解

    C语言中结构体变量私有化详解 背景介绍 操作系统 : CentOS7.3.1611_x64 gcc版本 :4.8.5 什么是结构体? 在C语言中,结构体(struct)指的是一种数据结构,是C语言中聚 ...

  5. C 语言中结构体强制转换--实验

    2019独角兽企业重金招聘Python工程师标准>>> 对于C语言中结构体强制转换做了如下实验, 或许可以解惑一些问题 对于结构体, 我理解的属性有: 成员的顺序, 成员的类型,成员 ...

  6. c语言定义学生结构体类型,C语言中结构体的三种定义方式

    c语言中结构体的定义: struct 结构体名{ 成员列表: ..... }结构体变量: 7.1.1 结构体类型变量的定义 结构体类型变量的定义与其它类型的变量的定义是一样的,但由于结构体类型需要针对 ...

  7. Go语言中结构体打Tag是什么意思?

    前言 哈喽,大家好,我是asong.今天想与大家分享Go语言中结构体标签是怎么使用的,以及怎样定制自己的结构体标签解析. 大多数初学者在看公司的项目代码时,看到的一些结构体定义会是这样的: type ...

  8. Go语言中结构体打 Tag 是什么意思?

    前言 哈喽,大家好,我是asong.今天想与大家分享Go语言中结构体标签是怎么使用的,以及怎样定制自己的结构体标签解析. 大多数初学者在看公司的项目代码时,看到的一些结构体定义会是这样的: type ...

  9. C语言中结构体标签的使用

    C语言中结构体标签的使用 我们都知道,结构体标签就是结构体的名称,为结构体命名可以方便我们在后续继续使用该结构体. 如 struct student {char* name;int age; }str ...

最新文章

  1. android 53 ContentProvider内容提供者
  2. Android端WEEX + HTTPDNS 最佳实践
  3. PHP中使用redis 执行lua脚本
  4. -bash: id: command not found -bash: tty: command not found
  5. 2003文件共享服务器搭建,用Windows Server 2003搭建安全文件服务器(2)
  6. 试问我们都在做些什么类型的测试?
  7. js原生设计模式——8单例模式之简约版属性样式方法库
  8. Problem B: 取石子
  9. 计算平均成绩,科目数未知
  10. 利用XML文件的一个写日志的类!!!!!
  11. DP动态规划--m处理器问题- m processors(FZU - 1442)
  12. 台式计算机安装无线网卡驱动程序,台式电脑无线网卡驱动程序怎么安装
  13. 从零开始开发Python程序(五)—— 把文字排版成一张图片
  14. 计算机学校的逻辑思维题,2013逻辑推理专项习题100道(附答案).docx
  15. python计算gpa,Python版GPA计算器
  16. 如何查看当前Ubuntu的版本
  17. TDH添加自定义参数
  18. 系统测试常见类型及说明
  19. 使用selenium抓取华尔街见闻和新浪财经数据
  20. 机器学习算法分析汇总

热门文章

  1. 高清音质背后:网易云信音乐教学方案技术解密
  2. 关于vue-cli创建项目(小白)(2)mock数据
  3. 再来一波PHP程序员必看书籍
  4. 初窥江湖之PhotoShop抠图(一)
  5. 多重继承、虚继承与虚基类
  6. 软件开发中IT用语-日文和英文对照版
  7. springboot 集成rabbitmq 实例
  8. MySQL explain
  9. Spring AOP根据JdbcTemplate方法名动态设置数据源
  10. Chmod 提升一个文件夹下所有文件(夹)的权限