读书人

可以用变量定义数组长度吗?解决思路

发布时间: 2012-06-19 14:45:20 作者: rapoo

可以用变量定义数组长度吗?
我刚学C语言,看谭浩强的《C程序设计》,上面写:

不能在方括号中用变量来表示元素的个数,下述说明方式是错误的。

C/C++ code
 main()        {          int n=5;         int a[n];         ……    }

真的是错误的吗?为什么能够运行?我写的程序很正常,能够获得期望的输出0 1 2,没有报错啊:
C/C++ code
#include <stdio.h>int main(){    int a = 3;    int b[a];    int i ;    for(  i = 0;i < a;i++){          b[i] = i;          printf("%d\n",b[i]);    }      getch();    return 0;    }



[解决办法]
完全可以...
[解决办法]
不能这个样子吧,int a[];变量是在编译的时候分配的内存空间,使用变量编译器就不知道分配多少空间了。
[解决办法]
请使用C89标准对待C语言。
[解决办法]
c89标准不支持变长数组,单色gcc的编译器因为有GNU C扩展,即使你用gcc -std=c89 test.c 来实验也看不到效果,照样编译通过。我在网上查到用gcc -pedantic test.c 可以看到效果,已经验证。
这篇文章说的很细,有兴趣可以看下,当然我觉得其实没必要深究,了解一下就行了
http://www.cppblog.com/Walker/articles/80805.html
[解决办法]
C89 C99
[解决办法]
同意爱的战士的说法。

读书人网 >C语言

热点推荐