可以用变量定义数组长度吗?解决思路
可以用变量定义数组长度吗?我刚学C语言,看谭浩强的《C程序设计》,上面写:不能在方括号中用变量来表示元素的
可以用变量定义数组长度吗?
我刚学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
[解决办法]同意爱的战士的说法。