Использование приращения внутри оператора if

#c 11 #if-statement #increment #control-flow

#c 11 #if-statement #приращение #поток управления

Вопрос:

В чем разница между if( x < 0){something} и if(x 1 < 0){something}

Заранее спасибо

Ответ №1:

Значение x x немедленно увеличивается на 1, и это новое значение x сравнивается с 0 .

Хотя x 1 значение не увеличивается x , и его исходное значение остается неизменным, сравнивается только вывод x 1 0 .

Ответ №2:

x увеличивается x на единицу и возвращает результат. x 1 оставляет x как есть и возвращает его значение, увеличенное на единицу. Таким образом, разница заключается в значении x после операции.

Контекст (внутреннее if условие или нет) здесь не имеет значения.

Комментарии:

1. Значит ли это, что, например, x = -1, if ( x < 0) означает, что на самом деле if (0 < 0) возвращает false, а x становится 0. Где if (x 1 < 0) также вернет false , но x останется прежним, 0?

2.В случае x 1 x , если останется -1 . На самом деле, вы можете проверить это самостоятельно с помощью Coliru coliru.stacked-crooked.com/a/89891cb0c0cd6054