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