Другие языки программирования и технологии
почему так. почему?? х=5 у=(++х)+(++х) ответ у=14 как считать?
В начале считывается ++x два раза, получается x == 7, потом считывается сумма, в итоге 14
Ну не знаю, у меня например в JavaScript получается 13
x=5;
y=(++x)+(++x);
alert(y);
1. ++x #1 » x=6
2. сохранение x=6 куда-то для дальнейшего использования
3. ++x #2 » x=7
4. value(п. 2)+7 = 13
А если у тебя проблемы в каком-нибудь СИ - значит это особенности недокомпилятора и недоязыка. Если в Делфи или еще какой-нибудь бредятине, удивляться точно нечему. Я себе вообще слабо представляю, как эти компиляторы перегоняют в Ассемблер п. 2.
Arsen Manucharyan написал уже, в чем проблема, так что
+1 в пользу Ассемблера и интерпретируемых языков
x=5;
y=(++x)+(++x);
alert(y);
1. ++x #1 » x=6
2. сохранение x=6 куда-то для дальнейшего использования
3. ++x #2 » x=7
4. value(п. 2)+7 = 13
А если у тебя проблемы в каком-нибудь СИ - значит это особенности недокомпилятора и недоязыка. Если в Делфи или еще какой-нибудь бредятине, удивляться точно нечему. Я себе вообще слабо представляю, как эти компиляторы перегоняют в Ассемблер п. 2.
Arsen Manucharyan написал уже, в чем проблема, так что
+1 в пользу Ассемблера и интерпретируемых языков
сто раз уже обсасывалось - результат зависит от компилятора. Гуглите
если так
cout << (++x)+(++x)<< endl;
то программа сначала сложит, потом присвоит и произведет общее сложение ++х (6) ++х (7) 7+7=14
а если так
cout << (x++)+(x++)<< endl;
программа сделает общее сложение потом только инкриментирует х, т. е. х=5 х=5 5+5=10 х++ (6) х++ (7)
сделай вывод значения х после примера, в обоих случаях х будет равнятся 7, вопрос лишь в каком порядке будет выполянятся операция
cout << (++x)+(++x)<< endl;
то программа сначала сложит, потом присвоит и произведет общее сложение ++х (6) ++х (7) 7+7=14
а если так
cout << (x++)+(x++)<< endl;
программа сделает общее сложение потом только инкриментирует х, т. е. х=5 х=5 5+5=10 х++ (6) х++ (7)
сделай вывод значения х после примера, в обоих случаях х будет равнятся 7, вопрос лишь в каком порядке будет выполянятся операция
Отрицательные числа знаешь? Вот и считай.. . )))
здесь дело в порядке выполнения операторов.... у ++ приоритет выше сначала выполняются ++ а потом сложение:
у=(++х) +(++х)
6 потом 7 дальше складываем (возвращаемся обратно) с (++6) то есть с 7 = 14
у=(++х) +(++х)
6 потом 7 дальше складываем (возвращаемся обратно) с (++6) то есть с 7 = 14
Похожие вопросы
- Кто может кратко написать как перевести из 2-х счисления в 8-х, 16-х, 10-х. А также наоборот из 10-х,16-х,8-х в 2-х
- Какое должно быть разрешение у фотографии для рекламного баннера размером 1,5 м Х 1,3 м, и где её взять?
- упорядочить матрицу 4 х 5 по элементам последнего столбца. в паскале, помогите
- Среди двузначных чисел вывести на экран те, сумма цифр которых равна х(0<х<18). Число х вводится с клавиатуры.В паскале!
- Почему Internet Explorer такой х.. й браузер?
- Чем отличаются 32-х и 64-х разрядные операционные системы?
- С++.Почему программа зацикливается после ввода Х
- Почему все ненавидят PHP? Дайте точный ответ
- в матрице Х (8,5) найти среднее арифметическое значение максимальных элементов в каждой строке
- Про цикл. int i = 5; i = ++i + ++i; Почему получается 14 а не 13?