无法在G ++中初始化数组

时间:2015-05-15 23:25:25

标签: c++ arrays g++

我尝试将int cate[catNum]数组初始化为所有1 s,cout<<cate[1]时,它会输出0?我不知道问题是什么,理论上它应该是1?

int main ()
{
    int const catNum = 13;    
    int cate[catNum]= {1};
    cout<<cate[1]<<endl;
}

2 个答案:

答案 0 :(得分:1)

int cate[catNum]= {1};

此语法将第一个元素初始化为1,其余元素初始化为0.(从技术上讲,值初始化其余元素。)

尝试,

std::fill( std::begin( cate ), std::end( cate ), 1 );

答案 1 :(得分:0)

您将cate定义为包含13个整数的数组,但初始化程序{1}只有一个整数,因此您只将第一个元素初始化为1.要将它们全部设置,您可以执行类似的操作

for (int i = 0; i < catNum; i++) { cate[i] = 1; }