黑马程序员技术交流社区
标题:
数组初始化问题
[打印本页]
作者:
王雪冬
时间:
2014-4-16 13:09
标题:
数组初始化问题
本帖最后由 王雪冬 于 2014-4-16 13:45 编辑
看下面两端代码:
int main
{
int count=5;
int ages[count];
ages[0]=0;
ages[1]=1;
ages[2]=2;
return 0;
}
int main
{
int count=5;
int ages[count]={0,1,2};
return 0;
}
复制代码
我觉得两段代码的思路是一直的,
问什么第二个报错呢?
作者:
星河鹭起
时间:
2014-4-16 13:14
第二个不能这样子,因为如果要直接初始化,ages[]括号里传递的是个具体的数值,而你这样传递的是个变量进去了,不符合规定,如果分开初始化,也就是第一种,那就可以传递变量进去
作者:
Freedam
时间:
2014-4-16 13:28
第二个main函数里的定义有误,那是因为从定义上看思路一致,但是在编译器支持的环境不同各有各的不同
在我的环境(编译器是C89标准的)编译是有问题的,如果换成其他的环境(用C99的话)将int count = 5改成const int count = 5就通过了。数组在初始化的时候中括号中必须是常量,int count = 5是自动类型的变量不是常量,这使得程序在链接的时候就报错了。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2