shindarah 0 8 марта, 2005 Опубликовано 8 марта, 2005 · Жалоба Короче я не понял... Пишу следующий код: if((i++)>=3){что-то сделать...} и пишу i++; if(i>=3){что-то сделать...} Работает по разному... В первом случае сначала сравнивает, потом увеличивает i Во втором сначала соответственно увеличивает i, потом сравнивает... Я не вижу разницы в записи... там ведь скобки стоят - у них приоритет должен быть больше, чем у сравнения... Может я что не понимаю? :huh: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ig_z 0 8 марта, 2005 Опубликовано 8 марта, 2005 · Жалоба Короче я не понял... Пишу следующий код: if((i++)>=3){что-то сделать...} и пишу i++; if(i>=3){что-то сделать...} Работает по разному... В первом случае сначала сравнивает, потом увеличивает i Во втором сначала соответственно увеличивает i, потом сравнивает... Я не вижу разницы в записи... там ведь скобки стоят - у них приоритет должен быть больше, чем у сравнения... Может я что не понимаю? :huh: <{POST_SNAPBACK}> Точно, не понимаешь. Все достаточно ясно описано в стандарте - пост и пре, инкремент и декремент. В первом случае компилер обязан взять значение переменной и выполнить действие (в данном случае сравнение), а затем инкрементировать ее значение. Первый равен второму if((++i)>=3){что-то сделать...} Второй равен первому if(i>=3){что-то сделать...} i++;// ++i; Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться