C++ 阵列初始化是如何进行的?

C++ 阵列初始化是如何进行的?,c++,C++,可能重复: 我正在初始化一个数组 int main() { int arr[3]= { (1,3), 2, 4 }; cout << arr[0] << " " << arr[1] << " " << arr[2] << endl; } intmain() { int-arr[3]={(1,3),2,4}; 不能原因相同: int x = (1,3); assert(x==3); 发生了 逗号运算符就是

可能重复:

我正在初始化一个数组

int main()
{
    int arr[3]= { (1,3), 2, 4 };
    cout << arr[0] << " " << arr[1] << " " << arr[2] << endl;
}
intmain()
{
int-arr[3]={(1,3),2,4};
不能原因相同:

int x = (1,3);
assert(x==3);
发生了


逗号运算符就是这样工作的。它“返回”最后一个表达式,同时(可能)计算这两个表达式。

您看到的是逗号运算符。基本上,表达式:

1,7
将计算
1
但“返回”7

您拥有的特定表单(以及上面的我的表单)没有多大用处,但您可以执行以下操作:

x = a++, 1;
增加
a
并将
x
设置为1(有用性来自副作用)

您以前会看到这一点,但不一定会意识到:

for (i = 0, j = 0; i < 4; i++, j++) ...
(i=0,j=0;i<4;i++,j++)的
。。。

重新开始投票时,应说明此问题与重复问题的不同之处。如果你想不出答案,请不要重新开始投票。