Форум программистов, компьютерный форум CyberForum.ru

Оператор запятая - C++

Восстановить пароль Регистрация
 
foolspeed93
1 / 1 / 0
Регистрация: 10.04.2012
Сообщений: 34
27.07.2015, 16:02     Оператор запятая #1
int I, j;
j=10;
i = (j++, j+100, 999+j);
почему выведет 1010 а не 1110?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
S_el
1906 / 1501 / 295
Регистрация: 15.12.2013
Сообщений: 5,914
27.07.2015, 16:11     Оператор запятая #2
foolspeed93, потому что 999+11 = 1010.
ture
 Аватар для ture
404 / 297 / 120
Регистрация: 27.11.2014
Сообщений: 1,004
27.07.2015, 16:25     Оператор запятая #3
Оператор "," имеет самый низкий приоритет, имеет левый и правый операнд, левый вычисляется первым, а возвращается результатом второй.
(j++, j+100, 999+j)
1) j++
2) j+100
3) 999+j

http://iproc.ru/programming/cpp-comma-operator/
castaway
Эксперт С++
4842 / 2981 / 367
Регистрация: 10.11.2010
Сообщений: 11,013
Записей в блоге: 10
Завершенные тесты: 1
27.07.2015, 16:35     Оператор запятая #4
j+100 <--- тут значение j не изменяется.
IGPIGP
Комп_Оратор)
 Аватар для IGPIGP
6167 / 2896 / 282
Регистрация: 04.12.2011
Сообщений: 7,703
Записей в блоге: 3
27.07.2015, 17:21     Оператор запятая #5
Цитата Сообщение от castaway Посмотреть сообщение
тут значение j не изменяется
похоже, что там выводится i. То есть если бы i= (j++, 999+j, j+100);
то вывелось бы 111.
castaway
Эксперт С++
4842 / 2981 / 367
Регистрация: 10.11.2010
Сообщений: 11,013
Записей в блоге: 10
Завершенные тесты: 1
27.07.2015, 17:29     Оператор запятая #6
Цитата Сообщение от IGPIGP Посмотреть сообщение
похоже, что там выводится i.
Всё верно, там выводится i. Я это и имел в виду.
C++
1
i = (j++, j+100, 999+j);
Данное выражение можно переписать так:
C++
1
2
3
j++;
j+100; // переменная j не меняется
i = 999+j;
Yandex
Объявления
27.07.2015, 17:29     Оператор запятая
Ответ Создать тему
Опции темы

Текущее время: 12:26. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru