发布网友 发布时间:2022-04-24 03:50
共3个回答
热心网友 时间:2022-07-12 01:31
int
n=4;这一句实践定义了n为int型变量,给它赋值4后当然i还是变量,因为i是可以变的量,而数组要求开辟一个指定的空间,所以括号中为了与之对应就不能用变量,只能是常量,比如int
a[5];或在程序前已定义了宏#define
n=5;
在写成a[n]就可以了,因为这时的n已经代表一个常量了,而不是像int
i=4中的i(还是个变量,因为你以后可以改变它的值)
热心网友 时间:2022-07-12 01:31
这是不行的.
定义静态数组时长度必须是常量.
所以如果n要从键盘输入的话,就必须定义成动态数组.
方法如下:*/
int
i,
n
,*a;
scanf("%d",
&n
);
a
=(
int*
)malloc(
n
*
sizeof(int)
);
//动态申请数组,长度为n
//使用时就这样:
for(
i
=
0;
i
<
n;
i++
)
{
scanf("%d",
&a[
i
]);
}
热心网友 时间:2022-07-12 01:32
这个的确是错误的。
若想要这样定义int
a[n];可在程序前加上#define
n
4,然后把前面的int
n=4;删了,这样就行了。