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