| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Общие вопросы > чем отличаются х++ от ++х ??? |
| Автор: Syberex 18.9.2006, 13:02 |
| чем отличаются х++ от ++х ??? результат вроде один , но может разница всётаки есть? |
| Автор: ZC1989 18.9.2006, 13:08 |
| угу... разница есть! ++х расшифровывается так { x=x+1; final=x; } тут сначала происходит прибавление, а потом "возвращение" результата, а х++, наоборот { final=x; x=x+1; } |
| Автор: Levenson 18.9.2006, 13:09 |
| Кароче говоря ++i эт значит он сначало произведет инкрементирование, и только потом возьмет значение i, а i++ наоборот. В этой фигне есть нюансы относительно того как оператор ++ -- получает начальное значчение аргумента(слева и справа). Я точно не помню, прочти скота майерся "Эфективное чето там" |
| Автор: EvgenZ 18.9.2006, 13:13 |
| напиши cледующее: int a = 5; std::cout << "pos" << a++ << std::endl; std::cout << "pre" << ++a; покоментируй выводы... |
| Автор: Syberex 18.9.2006, 13:15 |
| ребята рузультат один, и разницы нет вообще, то что вы сказали не работает, как это проверить? Добавлено @ 13:17 странно? |
| Автор: VitalikOmsk 18.9.2006, 13:18 |
| не парся сделай консольное приложение и прогони этодело там вот и все. ну к примеру сделай цикл и заведи переменные с одной делай так i++ а с другой делай так ++ii и уидишь в чем разница |
| Автор: EvgenZ 18.9.2006, 13:18 |
| Не может он быть один!!! 1 int main(){ 2 int a = 5; 3 std::cout << "pos" << a++ << std::endl; 4 //std::cout << "pre" << ++a; } запусти, а потом закоменть 3 строку и раскоменть 4 сравни результаты... |
| Автор: vinter 18.9.2006, 13:19 | ||
такое нереально,скопируй пример EvgenZ и запусти.. |
| Автор: ZC1989 18.9.2006, 13:20 | ||
оно обязано работать!
|
| Автор: Levenson 18.9.2006, 13:21 | ||
создай массив и цикл запиши вот так
сначало заполни массив нулями , а в цикле присваивай им рандом и выводи на экран и ты увидеш что x[0] = 0; то есть мы взяли i равное нулю и сразу увеличили(тело цикла еще не выполнялось) |
| Автор: Syberex 18.9.2006, 13:21 |
| сенкс, догнал наконец, разница есть! понял. |
| Автор: VitalikOmsk 18.9.2006, 13:30 |
| int main(int argc, char* argv[]) { int i = 0,ii = 0; for (int a =0; a < 10; a++) printf("i=%d ii=%d \n",i++,ii++); printf("Hello World!\n"); return 0; } |
| Автор: MAKCim 18.9.2006, 16:36 | ||
к примеру
|