2016-03-07 2 views
-2

r всегда имеет последнее целое число между скобками.Почему int r = (int, int, int); не дает ошибку, а 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 

То, что я хочу знать, почему это происходит.

+3

[Разделенный оператор] (https://en.wikipedia.org/wiki/Comma_operator) – BoBTFish

+0

@juanchopanza Итак, это не дубликат, по крайней мере, не тот вопрос. –

+3

Короткий ответ на вопрос в заголовке: так как язык 'C' был разработан для работы (и' C++ 'унаследовал это поведение). – axiac

ответ

Смежные вопросы