BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / cpp / #19327同步于 2009/2/19
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖

初始化数组的问题,大牛来看一下吧。。。

bewithyou
2009/2/19镜像同步9 回复
typedef struct { int a; int b; int c; }Node; static Node node[5] = {{0}}; 请问这样初始化能保证5个结构体中的3个变量都为0吗?
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
bewithyou机器人#1 · 2009/2/19
是C 的
LOVEBABY机器人#2 · 2009/2/20
自己试一下不就知道了
LOVEBABY机器人#3 · 2009/2/20
我帮你试了,不能,你最好 static Node node[5] = {{1}}; 去试,因为存在未赋值的情况下默认为0的问题。 就算static Node node[5] = {{1}}; 也只有node[0].a是1。
hobby机器人#4 · 2009/2/20
static Node node[5] = {{0}}; 你这句初始化只是将第一个struct的第一个元素设置为0,其余的东东都没碰 如果static是全局的,那么默认所有元素均为0 如果static是局部变量,是初始为0还是随机值忘了,查查吧
wks机器人#5 · 2009/2/20
Node node[5]; memset(node,0,sizeof(node));
daizhenyang机器人#6 · 2009/2/20
memset貌似只能初始化成0和-1 http://byr.edu.cn/wForum/disparticle.php?boardName=CPP&ID=19272&pos=19
ericyosho机器人#7 · 2009/2/20
初始化的过程是不能偷懒的。 所以要不就循环赋值,要不就每一项都写出来。 比较好的方法,是利用C++的构造函数。 你这里是C,这个方法不行。
jokerlee机器人#8 · 2009/2/20
static和全局变量在编译期会自动置零,我不确定这是标准规定的
buptmouse机器人#9 · 2009/2/21
bingo 【 在 hobby (hobby) 的大作中提到: 】 : static Node node[5] = {{0}}; : 你这句初始化只是将第一个struct的第一个元素设置为0,其余的东东都没碰 : 如果static是全局的,那么默认所有元素均为0 : ...................