大家来看下这个数组的初始化问题【简单】以下分析对不对

shared2013 2012-06-18 09:36:37
以下能对一维数组a进行正确初始化的语句是(   )
A)int a[10]=(0,0,0,0,0); B)int a[10]={};
C)int a[]={0}; D)int a[10]={10*1};
数组初始化:
a[数组元素个数]={各元素的值用,连接}
A 写成括号不对
B {}中没写值,不对
C 正确,数组直接赋初值可以不标数组元素个数,会根据后面赋值个数自动分配空间
D 正确,但要注意这样写只是给a[0]赋值10,其余的9个赋值为0,而不是将十个都赋值成1
追问
我感觉D也对,但是这个是单选,答案是C,B我想让数组全空也不能像B那样,要写个0对么
回答
D确实对,但单选的时候最好选C
因为揣摩出题者的意图,他想考察的是能不能用*给数组内全部元素赋值(比如5*2,把数组中5个元素都赋值为2),但他没有考虑周全,造成题目漏洞
在VC++6.0编译器中D选项能够正确编译(等价于int a[10]={10})
...全文
92 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
酱油党 2012-06-18
  • 打赏
  • 举报
回复
D只是a[0]赋值了,其他都没有赋值,这不叫初始化!~
酱油党 2012-06-18
  • 打赏
  • 举报
回复
晕!,写个测试程序,跟下代码,挨个选项测试下不就什么都出来了!~
yangkai7758 2012-06-18
  • 打赏
  • 举报
回复
如果初始化是要求给每个成员赋上初值的话,那么就是C了

虽然这个数组只有一个成员
AnYidan 2012-06-18
  • 打赏
  • 举报
回复
int a[10]={10*1};
只有 a[0] = 10; 其余= 0;

69,382

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧