c语言中能不能用*给数组内全部元素赋值(比如5*2,把数组中5个元素都赋值为2)int a[5]={5*2};

如题所述

不行,因为算求运算符的优先级大于赋值运算符,所以你你这样写计算机会把2*5的值10赋给a[0].追问

那怎样做才可以将数组内的所有元素都被赋为同样的值、除了int a[5]={2,2,2,2,2}

追答

没有方法,只能初始化时赋值或者用for循环逐个赋值

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-05-21
不能用*进行你想要的操作,但是可以在数组定义的时候将数组内容变为同一个值,就是
int a[5] = {2};
这样数组内的5个元素都为2,但是如果想让5个元素不一样,就没有简单的操作方法了追问

int a[5] = {2}; 不是表示a[1]=2,而后的4个元素自动赋0值么?怎么会5个元素都为2、

追答

不好意思,是我记错了,多谢指出,不必理会我的回答了

第2个回答  2013-05-21
这个似乎是fortran,不是C
另外int a[5]={5*2};的写法是没有问题的,结果
a[0]==5*2==10;
a[1]==a[2]==a[3]==a[4]==0;本回答被提问者采纳
第3个回答  2013-05-21
0的话可以,其他不能。
0的写法: int a[5] = {0};
第4个回答  2013-05-21
没问题的,