我尝试将int cate[catNum]
数组初始化为所有1
s,cout<<cate[1]
时,它会输出0
?我不知道问题是什么,理论上它应该是1?
int main ()
{
int const catNum = 13;
int cate[catNum]= {1};
cout<<cate[1]<<endl;
}
答案 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; }