Как здесь используется запятая?
Возможный дубликат:
Оператор с запятой С++
Использование C-запятой
Я не новичок в С++, но это первый раз, когда я вижу следующий код:
int a=0;
int b=(a=2,a+1);
Это код на С++. Не могли бы вы рассказать мне, что здесь происходит? И как переменная b получает значение 3?
Ответы
Ответ 1
Этот код эквивалентен этому:
int a = 2 ;
int b = a + 1 ;
Первое выражение слева от запятой оценивается, а справа - справа. Результат самого правильного выражения сохраняется в переменной слева от знака =
.
За дополнительной информацией обратитесь к оператору запятой.
http://en.wikipedia.org/wiki/Comma_operator
Ответ 2
(a = 2, a + 1);
return 3, потому что в общем случае оператор (a, b) возвращает b, а вычисление в (a, b) начинается справа налево. Итак, в вашем случае (a = 2, a + 1)
return a + 1
и после выполнения оператора a = 2
a + 1
return 3.