请问这个一维数组int n=10,a[n];说明正确吗?为什么?数组#define long 10; int a[long+5];是否正确为什么?
以下程序段给数组所有的元素输入数据,_______处的正确答案是 main() {int a[10],i=0; while(i<10)scanf("%d",_____); ....... } A.a+(i++) B.&a[i+1] c.a+i D.&a[++i] 这道题为什么答案是c?而它的三个答案为什么不对,请解释一下
前一个int n=10,a[n];是错的,定义数组时必须用常量指明大小,要用变量定义数组可以用calloc函数,]
后一个define long 10;int a[long+5];是正确的,宏只起替代作用,long+5就是10+5的意思没有变量。
下面一个我认为没有答案吧C应该不对应该是a+i++ a是数组的首地址,a+i++有点类似于指针表示,
A先执行i++;Bi没变,是个死循环;c死循环;Di先自增了
前一个看你用什么编译器,如果是C99标准的,是可以,现在手头没有编译器无法调试。但是可以肯定的是
:
main()
{
int a=10;
fun(a)
}
fun(int a)
{
int sum[a];
...
}
这样是可以的。这就是变长数组。(刚才查了下网上资料,C99是支持的,TC2。0肯定是不行的,TC是C89标准,C89没有这概念)
后一个是错误的,long是什么?是保留字!不可乱用。
[此贴子已经被作者于2004-07-31 23:28:25编辑过]