结构体数组初始化

结构体数组初始化《代码大全》建议在变量定义的时候进行初始化,但是很多人,特别是新人对结构体或者结构体数组定义是一般不会初始化,或者不知道怎么初始化。1、初始化typedefstruct_TEST_T{       inti;       charc[10];}TEST_T;TEST_T gst  ={1,“12345”};//可以初始化,设置i为1

大家好,又见面了,我是你们的朋友全栈君。

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

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中有相同的全局变量定义,且没有初始化,编译器会认为第二个是声明而不是定义。)

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/161072.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • linux阻塞与非阻塞(connect连接超时)

    非阻塞connect详情介绍可以参见文章:https://blog.csdn.net/qq_41453285/article/details/89890429一、非阻塞connect概述man手册connect的man手册有如下一段内容:EINPROGRESSThesocketisnonblockingandtheconnectioncannotbe…

  • 线程池参数配置详解[通俗易懂]

    线程池参数配置详解[通俗易懂]/***Createsanew{@codeThreadPoolExecutor}withthegiveninitial*parameters.**@paramcorePoolSizethenumberofthreadstokeepinthepool,even*iftheyareidle,unless{@codeallowCoreThreadTimeOut}isset.

  • org/w3c/dom/ElementTraversal 错误解决办法[通俗易懂]

    org/w3c/dom/ElementTraversal 错误解决办法[通俗易懂]org/w3c/dom/ElementTraversal错误解决办法不记得之前几天把什么maven依赖包删除了,今天利用htmlunit运行代码的时候报了下面的错误:Exceptioninthread”main”java.lang.NoClassDefFoundError:org/w3c/dom/ElementTraversal atjava….

    2022年10月25日
  • elementui树形控件_elementui树形控件筛选

    elementui树形控件_elementui树形控件筛选实现效果与原理我们希望实现鼠标移动至树型结构的结点上就显示按钮,移出就隐藏按钮实现原理:是通过@mouseenter和@mouseleave两个属性来控制鼠标hover的效果,再配合v-sho

  • Linux下默认RPM安装路径「建议收藏」

    Linux下默认RPM安装路径「建议收藏」针对RPM包一般情况下命令放在/usr/bin或/usr/sbin下库在/usr/lib下数据文件在/usr/share/下命名:rpm -pql [rpm文件名],来查看一个rpm包里有哪些文件,即安装的路径如果是从源码安装的话  可以选择安装路径:用这条命今看参数./configure –help./configure –prefix=/

  • http 400报错

    http 400报错http400报错—springmvc相关:1.使用了json入参,传递给了对象,如果对象里的属性,如这里的Bonus是int类型,你传入了非int类型,这里就会报4002.使用了@RequestBody,然而信息头ContentType是非application/json,如:application/x-www-form-urlencoded,也会报400转载于:https:…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号