为什么 int r = (int, int, int);没有给出错误并且 r 具有最后一个整数的值?

Why int r = (int, int, int); doesn't give error and r has the value of the last integer?

r 始终是括号之间的最后一个整数。

以下程序的输出是什么?

#include <iostream>
using namespace std;
main() {
    int i = 1, j = 2, k = 3, r;
    r = (i, j, k);
    cout << r <<endl;
}

可能的答案:

A - 1
B - 2
C - 3
D - Compile Error

我想知道的是为什么会这样。

这是逗号运算符 - 请参阅 https://en.wikipedia.org/wiki/Comma_operator

因此r会在这条语句中得到k的值

r = (i, j, k);