C语言中定义数组时对其全部初始化为1的问题

inta[10]={1}这种写法对不对,如果不对该怎么写的,最好不要用循环哈... int a[10]={1}
这种写法对不对,如果不对该怎么写的,最好不要用循环哈
展开
 我来答
匿名用户
推荐于2017-12-15
展开全部
这种写法不可以,要写成 int a[10] = {1,1,1,1,1,1,1,1,1,1};
你的那种只是a[0]=1;而a[1]~a[9]都是默认值哦!
匿名用户
2013-10-24
展开全部
不对啦,那个是a[0]=1,其余都是0;不用循环赋值的话,用容器吧:vector <int>a(10,1);记得头文件加<vector>,C++里的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
laotangsky
2021-01-12 · TA获得超过119个赞
知道答主
回答量:55
采纳率:0%
帮助的人:17.6万
展开全部
这写法不对,C标准中这么写只会初始化第1个元素,后面的全是默认值0,gcc编译器支持c语言数组更灵活的初始化方式:
int a[10] =
{
[ 0 ... 9 ] = 1,
};
注意别的编译器不一定支持,包括gcc编译c++代码也不支持这种写法,只有gcc编译c语言支持这种方式。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-10-24
展开全部
这样写不对的int a[10]={1}只定义了a[0]=1;其他默认为0
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
狂喜猫
推荐于2018-04-19
知道答主
回答量:4
采纳率:100%
帮助的人:3308
展开全部
int a[10] = {[0 ... 9] = 1}; // 注意 “ ... ”两端有空格
int [10] = {[0 ... 4] = 1, [5 ... 9] = 2}; //若想要分段统一初始化,可以这样做。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式