Как оператор запятой используется здесь?

Возможный дубликат:
C ++ оператор запятой
Использование оператора C запятой

Я не новичок в C ++, но это первый раз, когда я вижу следующий код:

int a=0;
int b=(a=2,a+1);

Это код C ++. Можете ли вы сказать мне, что здесь происходит? А как переменная b получает значение 3?

4

Решение

Этот код эквивалентен этому:

int a = 2 ;
int b = a + 1 ;

Сначала вычисляется выражение слева от запятой, а затем справа. Результат самого правого выражения сохраняется в переменной слева от = знак.

Посмотрите оператор запятой для более подробной информации.

http://en.wikipedia.org/wiki/Comma_operator

12

Другие решения

(a = 2, a + 1); return 3, потому что в общем случае оператор (a, b) возвращает b, а вычисления в (a, b) начинаются справа налево. Итак, в вашем случае, (a = 2, a + 1) вернуть a + 1и после оператора a = 2 был выполнен a + 1 вернуть 3.

3

По вопросам рекламы [email protected]