|
orangemouse
|
|
Секреты инкремента04.08.2008, 06:48. Показов 12268. Ответов 32
Метки нет (Все метки)
Пожалуйста!!! помогите! Умоляю!
![]() i=5; j=(++i) + (++i): Чему равно j?; пожалуйста обьясните как это решается, ну или просто ответ скаите??? :huh:
|
|
| 04.08.2008, 06:48 | |
|
Ответы с готовыми решениями:
32
Перегрузка инкремента ++
Перегрузка инкремента |
|
Почетный модератор
8785 / 2538 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
|
|
| 04.08.2008, 16:16 | |
|
на счет приоритетов, вы не правы... они имеются в любом случае, а вообще такого рода записи - дурной тон программирования, ум за разум заходит... brainfack какой-то выходит, а не си
0
|
|
|
2256 / 771 / 25
Регистрация: 27.05.2008
Сообщений: 1,496
|
|
| 04.08.2008, 17:07 | |
|
Не нужно писать так только потому,что можно так писать. Нужно всегда точно знать,что делает код. Такие примеры хороши как задачи,но не дай бог увидеть
такое в своем рабочем коде...
0
|
|
|
2 / 2 / 0
Регистрация: 02.08.2008
Сообщений: 40
|
|
| 04.08.2008, 17:53 | |
|
0
|
|
|
2924 / 1274 / 114
Регистрация: 27.05.2008
Сообщений: 3,465
|
||
| 04.08.2008, 22:41 | ||
![]() Стандарт 5/4 говорит, что такой код приводит к неопределенному поведению (unspecified/undefined behavior) программы. Под "неопределенным поведением" же можно понимать все, что угодно, вплоть до форматирования жесткого диска, - Стандарт (1.3.12) не накладывает никаких ограничений. И не нужно медитировать над компиляторами, приоритетами и прочим. Нет Стандарта, кроме Стандарта, и Страуструп - пророк его.
0
|
||
|
296 / 56 / 5
Регистрация: 22.05.2008
Сообщений: 788
|
|
| 04.08.2008, 23:05 | |
|
всё по порядочку
i==5 для начала выполняются действаия в скобках, ++i сначала инкрементит i, и только потом возвращает его, сразу после этого выполняется вторая скобка и мы имеем: i==7; j=i+i; тоесть j=14 а уж в других языках просто приоритет не такой у операций(я ориентировался на приоритет C++)
0
|
|
|
2838 / 1647 / 254
Регистрация: 03.12.2007
Сообщений: 4,222
|
||
| 05.08.2008, 12:04 | ||
|
++i возвращает i+1, а в какой момент времени (не обязательно сразу) она то ли инкрементит саму i, то ли пишет в неё вычисленное значение, это не определено.
0
|
||
|
2 / 2 / 0
Регистрация: 02.08.2008
Сообщений: 40
|
|
| 05.08.2008, 17:36 | |
|
Работает все, как описал Spo1ler. Только значение в C++ не возвращается (не сохраняется в выражении), а просто перед началом вычисления выражения два раза инкремируется значение i и в итоге получается i+i (т.е. 7+7). В случае с постфиксным - инкремент происходит после вычисления выражения, и получается 10.
Добавлено через 5 часов 16 минут Хех. Щас писал прогу, и понял в чем фишка в C#. В C# получается 14 в том случае, если инкремент заключен в скобки. То есть, когда он в скобках - значение сохраняется, когда нет - не сохраняется. Т.е. выражение "++i + ++i" вернет 13, когда "(++i) + (++i)" вернет 14.
0
|
|
|
21 / 20 / 0
Регистрация: 04.08.2008
Сообщений: 31
|
|
| 07.08.2008, 20:45 | |
|
А меня интересует следующая запись:
q++ = p. Что она означает? Переменной q присваивается значение p, затем она инкрементируется? И что было бы если имела место запись ++q=p? Добавлено через 2 минуты Ещё вопрос. Если компиллятор доходит до какой то строки, то он читает её целиком, или двигается слева направо?
0
|
|
|
2256 / 771 / 25
Регистрация: 27.05.2008
Сообщений: 1,496
|
||
| 07.08.2008, 20:47 | ||
|
0
|
||
|
21 / 20 / 0
Регистрация: 04.08.2008
Сообщений: 31
|
||
| 07.08.2008, 23:46 | ||
|
char *q и сhar *p, и инструкция *q++ = *p, если честно, я и не понял что она обозначает.
0
|
||
|
Почетный модератор
7393 / 2639 / 281
Регистрация: 29.07.2006
Сообщений: 13,696
|
|
| 08.08.2008, 00:14 | |
|
По адресу q записываем значение из взятое с адреса p. После чего смещаем указатель q инкрементом.
0
|
|
|
Of Wolf and Man
999 / 198 / 5
Регистрация: 09.07.2008
Сообщений: 1,784
|
|||||||||||
| 08.08.2008, 10:48 | |||||||||||
|
а если написать
...потихоньку вспоминаю громкозабытый С
0
|
|||||||||||
|
Почетный модератор
8785 / 2538 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
|
|
| 08.08.2008, 10:50 | |
|
по-моему, тема себя исчерпала полностью, остальное - это домашнее задание для любознательных, будут новые открытия - пишите, а то тема превратилась в урок по программированию...
0
|
|
| 08.08.2008, 10:50 | |
|
Особенности инкремента Оператор перегрузки инкремента Операторы инкремента и декремента Перегрузка операции инкремента Использование инкремента(Декремента) Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Море в объективе
kumehtar 06.07.2026
Хотел написать много проникновенных слов, но передумал.
Оно само - говорит.
Кто слышит тот слышит.
|
Doom для терминала без стрельбы и монстров. 3D Raycasting на ascii.
dcc0 05.07.2026
Попросил нейронную сеть deepai. org написать рейкастинг 3D с библиотекой ncurses для Linux. Чтобы можно было
ходить на стрелочки. Чтобы стены были отрисованы символами. Справилась.
Первый вариант. . .
|
Установка статуса документа по условию
Maks 05.07.2026
Алгоритм из решения ниже реализован на нетиповом документе "НарядПутевка" разработанного в КА2.
Задача: в табличной части "Материалы" документа при записи автоматически устанавливать статус. . .
|
Сезонность и суточность закисления почв
anaschu 04.07.2026
200 часов это все равно моловато. Есть ситуации, но нестандартные, когда смена происходит за 5 лет.
Но обычно это 50 лет и более.
Наверное, закисление почвы происходит сезонно в средней. . .
|
|
В чем ценность человеческого опыта в глобальном смысле?
kumehtar 03.07.2026
Возможно, ценность человека не в том, что он однажды достигает мудрости, а в том, что он становится носителем карты пути. Он знает не только истину, но и последовательность внутренних изменений,. . .
|
интеграция AnyLogic с самописным REST API и переход на Odoo
anaschu 03.07.2026
Успешная интеграция AnyLogic с самописным REST API и переход на промышленную Odoo WMS
Сегодня проделал огромный путь от простой симуляции физических процессов до построения полноценной. . .
|
Поиск всех путей на ориентированном графе. Linux
dcc0 02.07.2026
Переработка старого кода из моей статьи.
Через несколько переработок от PHP кода к C89 (надеюсь, 89).
Но довольно запутанно получилось. Код для Linux.
Но если убрать time и то, что с ним. . .
|
Сам себя обучал rest api
anaschu 02.07.2026
Педагогический лайфхак: Почему чистый REST API для ученика намного круче, чем готовые библиотеки
Когда мы отказались от капризного JAR-файла AnyLogic и переписали код на стандартный HttpClient,. . .
|