Я использовал SO некоторое время как ссылку, но никогда не задавал вопрос раньше. Я в настоящее время в классе C++ в колледже, а также читаю Программирование: Принципы и практика от Bjarne Stroutstrup только для моего собственного бенифита, так как я видел ответ на вопрос, который действительно рекомендовал его.Некоторая путаница с тем, как работают запятые в C/C++
В настоящий момент мы охватываем операторов в моем классе, и я просто не могу оборачивать голову тем, как оператор запятой работает в заявлении. Один пример - примерный вопрос для онлайн-части класса, который я продолжаю ошибаться, даже если я пишу программу на C и использую GDB для получения результата. Возникает вопрос:
Предполагая x == 16 перед следующим выражением, каково значение следующего выражения (не обязательно значение x)?
х ++, ++, х + = х
Я не заинтересован в правильном ответе столько о том, как получить правильный ответ. Я прочитал пару ответов на похожие вопросы, например, этот here, но похоже, что мне не хватает того, как это применимо, когда на самом деле нет оператора привязки. Это то же самое, как говорят
int y = (x++, ++x, x+=x);
или
int y = x++, ++x, x+=x;
или ни? Может ли кто-нибудь объяснить, как работает оператор запятой, в частности, в отношении заявления без назначения?
@SouravGhosh Нет, оператор запятой вводит точку последовательности между ее операндами. Выражения секвенированы слева направо. – juanchopanza
@KeithThompson Спасибо, сэр, за то, что вы меня исправили. –
@juanchopanza Сэр, как-то я пропустил главу 6.5.17. Извини за это. Я стою исправлено. –