2014-10-12 2 views
-6

Я сталкивался строк кодаОператор в C/C++

int a=6, b=7; 
cout << (b,a); 

это побуждающие из 16. Что (Ь, а) означает? Выполняет ли это операцию?

+5

Это должно напечатать '6'. – juanchopanza

+1

«1» должно быть от чего-то еще раньше .. он должен выводить 6 –

+1

«он подскажет 16» - [нет, это не так] (http://ideone.com/ASd7nt) – WhozCraig

ответ

3

В этом выражении

(b,a) 

есть оператор запятой. Его значением является значение последнего (правого) подвыражения после запятой. Значение первого (левого) подвыражения отбрасывается. Таким образом, выходной сигнал будет

6 

С С ++ Стандартный

Пара выражений, разделенных запятой вычисляется слева направо; левое выражение является выражением discardedvalue (раздел 5) .87 Каждое вычисление значения , связанное с левым выражением , секвенируется перед вычислением каждого значения и связанным с ним побочным эффектом с правильным выражением. Тип и значение результата: тип и значение правого операнда; результат имеет то же значение , что и его правый операнд, и является битовым полем, если его правый операнд является значением glvalue и битовым полем. Если значение правого операнда является временным (12.2), результатом является временное.