<分区>
Possible Duplicate:
C++ Comma Operator
我正在初始化一个数组
int main()
{
int arr[3]= { (1,3), 2, 4 };
cout << arr[0] << " " << arr[1] << " " << arr[2] << endl;
}
我以为它会给出编译时错误,但它运行良好。该数组用值 3,2,4
初始化,输出也是 3 2 4
。
谁能解释一下这里发生了什么?
标签 c++
<分区>
Possible Duplicate:
C++ Comma Operator
我正在初始化一个数组
int main()
{
int arr[3]= { (1,3), 2, 4 };
cout << arr[0] << " " << arr[1] << " " << arr[2] << endl;
}
我以为它会给出编译时错误,但它运行良好。该数组用值 3,2,4
初始化,输出也是 3 2 4
。
谁能解释一下这里发生了什么?
最佳答案
您正在查看那里的逗号运算符。基本上,表达式:
1,7
将评估 1
但“返回”7。
你拥有的那种特殊形式(以及我上面的)不是那么有用,但你可以做这样的事情:
x = a++, 1;
同时增加 a
并将 x
设置为 1(有用性来自副作用)。
你之前可能已经看到了这一点,但不一定没有意识到:
for (i = 0, j = 0; i < 4; i++, j++) ...
关于c++ - 这个数组初始化是如何发生的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9483405/