有,C99模式已晌培经支持这种初始化。c99数组新特性之一(非常量伍谨脊表达式初始化数组) :如下:
int a1[3]={1,max(a,b),3}; /腔渗*数组第2个元素的值通过函数来确定*/
int al[5]={[2]=100,[1]=3} /*{0,3,100,0,0} */
int a2[5]={[0]=10,[2]=-1,-1,-3} /* {10,0,-1,-1,-3} */
int a3[]={0,1,2,3,6,[2]=5}; /*{0,1,5,2,3,6} a3的长度是6 */
int
a[5]={1,2,3,4,5};
这样是定义的时候初始化
定纤大义时没初毁蚂竖始化,就不能整物州体赋值了
你这样写当然不对
有,这个真有,C99中支持,没记错的话
初始化
赋值
是不同的概念
希望楼主每天对这两个概念默氏渗念歼辩脊一遍
在任何灶裂基础C编程书中都有介绍这两个概念的
C99前,标准不支持VLA,要求定义数组大小时必须使用常量作为大小,不可使用变量