我得到了错误C2440:
我有以下错误我得到了错误C2440:
错误C2440:初始化:不能转换从 '常量诠释' 到 '廉政 [16]'
我的代码是这样的
static int Count[MAX_STATION_NO] = 0;
我上面的错误。有人能告诉我上述行中有什么问题吗?
您正在将数组视为指针,这是非法的。您不能将数组分配给某个值。
也许你想这样的:
static int Count[MAX_STATION_NO] = {0};
谢谢Luchian先生,你解决了我的问题 – Vaibhav 2012-04-02 09:15:02
要创建阵列和阵列值设置为“0”。我想你希望做的是:
static int Count[MAX_STATION_NO] = {0}
不,他没有将数组值设置为0.他的代码只是非法的。 – 2012-04-02 09:11:30
是的,我明白这一点。我的意思是,代码暗示它将数组的值设置为一个整数,导致数据类型不匹配,然后继续根据我认为他实际上希望做的事情给出解决方案。 – 2012-04-02 09:14:43
你的表述仍然错误和误导。 – 2012-04-02 09:16:05
你的初始化需要在大括号:
static int Count[MAX_STATION_NO] = { 0 };
BTW:静态数组有自己的内容初始化为0反正所以你上面的等价于:
static int Count[MAX_STATION_NO];
该行声明一个大小为16的数组,然后给它指定一个数字,这在句法上是不正确的。您需要使用数组初始化:
{ 16, 2, 77, 40, 12071 ... }
大括号{}
需要初始化数组。 如:
static int Count[MAX_STATION_NO]={1,2,3};
也许这个链接可以帮助你:http://www.cplusplus.com/doc/tutorial/arrays/
这是C++ 11 systax。很多编译器(在VS2010之前)在初始化列表之前需要'='。 – harper 2012-04-02 12:56:18
哦,当然我会编辑它。感谢您指出 – 2012-04-03 04:02:39
你可能想:'静态诠释计数[MAX_STATION_NO] = {0}'; – Mysticial 2012-04-02 09:09:56