title
Description
Body
manual написал:
Returns 1, always.
Неактивен
Да я не за это, "префиксный и постфиксный инкремент/декремент" это уже давно знаю.
если бы код был таков
i = 10;
j = i ++;
я не задумываясь ответил бы что j = 10 а i = 11;
Когда мне загадали эту загадку я не задумываясь ответил что будет 11
Почему: Ведь переменной i присваивается 10 потом снова 10 и после присваивания эта же переменная увеличивается.
Логики вообще не пойму.
Не знаю как тебе обьяснить
вот код может поймешь о чем я.
|
|
Вот я думал что полностью понимаю логику апача.
Но оказывается все не так.
Неактивен
чет не понял,почему тут
i = 10;
j = i ++;
j будет равно 10 ? если идет что i = 10 а j = i ++,то это j должно идти 10 и +1 ,а Дима написал:
"i = 10;
j = i ++;
я не задумываясь ответил бы что j = 10 а i = 11;"
Неактивен
POFIGISST
Понимаешь $j = $i ++;
Сначало присваивается Значение i в j а потом уже i увеличивается на 1;
Если бы $j = ++ $i тогда да.
Вопрос в другом я не пойму последовательности выполнения кода
Gemorroj написал:
я вот не понимаю твое негодование.
Вот смотри распишу тебе дебаг.
i = 10;
i = i ++;
debug:
1)
i = 10;
i = i++;
i присваивается 10 (i = 10;)
__________________
2) шаг
i = 10;
i = i ++;
i присваивается 10 (i = i;)
__________________
3) Ну и третий шаг когда переменной i присвоено 10 выполняется ее инкремент.
i = 10;
i = i ++;
???????
Только пожалуйста не надо третий раз писать ++ i; и i ++; это две разные вещи, не то я не выдержу и разобью свою клаву.
Неактивен
Ну, я все же еще раз повторюсь, что именно так работают префиксный и постфиксный инкремент.
Просто нужно запомнить это отличие. Если бы его не было, не было бы и 2-х типов инкремента.
Что касается низкоуровнего разбора такого поведения, то я могу только предполагать.
Мои мысли:
На 2 шаге мы присвоили некой области памяти i значение 10. Затем сделали инкремент старой области памяти i. Но поскольку i находится в новой области памяти, инкремент прошел "в никуда".
Неактивен
Gemorroj написал:
Мои мысли:
На 2 шаге мы присвоили некой области памяти i значение 10. Затем сделали инкремент старой области памяти i. Но поскольку i находится в новой области памяти, инкремент прошел "в никуда".
Вот что я имел в виду. А не инкремент и декремент.
Просто мне загадали загадку типо как ребенку что я незнаю как работает инкремент.
Но я вообще задумывался именно в то как поведет себя код т.е. что последнее присвоится.
Кстати тот кто загадал мне эту загадку не смог ответит на тот же вопрос что я задал тебе.
Эх как камень с души.
Неактивен