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++)的。。。
重新开始投票时,应说明此问题与重复问题的不同之处。如果你想不出答案,请不要重新开始投票。