2012-08-04 62 views
-1

我试图初始化数组为全零的for循环与C++写:警告有关数组初始化

for(int k=1; k<4; k++){ 

    p[n]={0}; 
    for(int k1=0; k1<n; k1++){ 

     x=x+y; 
    } 
} 

但我编译时得到一个警告说:

警告:扩展初始值设定项列表仅适用于-std = C++ 0x或-std = gnu ++ 0x [默认启用]

有没有人知道它的含义? 或我该怎么做才能得到这个警告?

+1

您有使用'{}'的具体原因吗?它需要用作数组初始化的一部分,但不能在赋值期间使用。 – Mahesh 2012-08-04 00:19:33

+1

什么是'p'定义为? – Linuxios 2012-08-04 00:19:35

+0

只是所以你知道,你可以只是'x + = y;'而不是'x = x + y;' – jrad 2012-08-04 00:20:00

回答

1

这意味着您正在使用的初始化语法是在C++ 11中引入的。为了摆脱警告,您必须通过传递-std = C++ 0x来在编译器中启用C++ 11支持。

此外,我认为你有你的ks和ns混合在代码示例中。事实上,外层循环一遍又一遍地做同样的事情。

0

int myArray [5] = {0}; 然后你可以初始化一个数组为全零! 只是尝试!