关于c++中的数组

来源:百度知道 编辑:UC知道 时间:2024/05/08 10:06:28
书上说,如下的创建数组是错误的:
int a=10;
int b[a];
但我在我的编译器上却执行通过了(我用的dev c++),是编译器的问题呢,还是书上写错了?

怎么可能,这样是违背语法的

我觉得本身就可以的。当然我不太懂。
我们书上是这样的不可以。
int a;
cin>>a;
int b[a];
这样不可以。你那个a已经写死了呀。就应该没问题吧。

有什么问题?什么问题都没有,这样的好处是以后与a相关的,只要改a就可以了,但是像这样比较正规:#define a 10

如果a在使用前(编译前)有确定值,可以,如果是编译时没有确定值,那当然不可以了,未知的量你怎么编译通过。

用gcc编译运行一下程序,
gcc test.c
运行生成的a.exe,结果为
4,40

#include <stdio.h>

int main()
{
int a=10;
int b[a];
printf("%d,%d",sizeof (a),sizeof(b));
return 0;
}