Kyr*_*o M 3 c c++ arrays initialization variable-assignment
示例代码:
int ar[3];
............
ar[0] = 123;
ar[1] = 456;
ar[2] = 789;
Run Code Online (Sandbox Code Playgroud)
有没有办法让它缩短?就像是:
int ar[3];
............
ar[] = { 123, 456, 789 };
Run Code Online (Sandbox Code Playgroud)
我不需要解决方案:
int ar[] = { 123, 456, 789 };
Run Code Online (Sandbox Code Playgroud)
定义和初始化必须是分开的.
您要求的不能直接完成.但是,您可以在那里做不同的事情,从创建使用聚合初始化初始化的本地数组开始,然后memcpy在数组上进行-ed(仅对POD类型有效),或者使用更高级别的库boost::assign.
// option1
int array[10];
//... code
{
int tmp[10] = { 1, 2, 3, 4, 5 }
memcpy( array, tmp, sizeof array ); // ! beware of both array sizes here!!
} // end of local scope, tmp should go away and compiler can reclaim stack space
Run Code Online (Sandbox Code Playgroud)
我没有时间检查如何使用boost::assign,因为我几乎不使用原始数组.