2 a1163639207 a1163639207 于 2014.12.10 12:29 提问

这样不允许么·····算不算潜套定义

#include
int main()
{void print(int i);
int i;
i=1;
print(i);
return 0;
}

void print(int i)
{char a[i]={'x'};
printf("%c",a[0]);
}

3个回答

u013180299
u013180299   2014.12.10 13:10

char a[i]=['x'];这样的定义是有问题的,数组的大小在定义的时候是需要指定的,因而需要先定义一个数组再将'x'这个字符赋值给指定数组的位置。
同时数组赋值的格式也有错误。应直接a[i]='x'

a1163639207
a1163639207 可是我的i不是已经确定值了么
接近 3 年之前 回复
xiaohuh421
xiaohuh421   Rxr 2014.12.10 15:01

char a[i]={'x'}; C++11前都是不支持变长数组的.
要看你的编译器是哪个版本, 支持C++哪个版本的标准.

要看你的目的是什么, 要写什么样的程序, 然后才好修改.

w810443616
w810443616   2014.12.10 16:45

不算重定义,那个print函数在主函数里面出现属于声明,后一个属于调用;而且你那个print函数体的内容也有些问题。这些都是毛病,开发时候要尽量规避这些问题。

Csdn user default icon
上传中...
上传图片
插入图片