Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Постфиксный и префиксный декремент - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Системы счисления, погрешность http://www.cyberforum.ru/cpp-beginners/thread912734.html
Всем привет. Может кто помочь с написанием программы, которая будет : 1. Переводить число с дробной частью из десятичной в двоичную 2. Переводить из двоичной в десятичную 3. Считать погрешность...
C++ Структуры данных. Написать программу, позволяющую определить, есть ли в школе в каких-либо классах однофамильцы Написать программу, позволяющую определить, есть ли в школе в каких-либо классах однофамильцы. Данные об ученике идут в следующем порядке: имя, фамилия, год обучения, буква. Данные о раз¬ных учениках... http://www.cyberforum.ru/cpp-beginners/thread912727.html
C++ 3d моделирование
Доброго времени суток! помогите разобраться в коде.. программа выполняет вращение, перемещение и увеличение/уменьшение 3d фигур. Не могу понять только как и в каком месте программы закрашиваются...
C++ Программа выводит числа a,b и c не более 25, для которых верно равенство теоремы пифагора т.е a2+b2=c2
Программа выводит числа a,b и c не более 25, для которых верно равенство теоремы пифагора т.е a2+b2=c2 Помогите пож никак не получается решить
C++ помогите написать подпрограмму считающую сумму нечётных чисел, содержащих цифру 5 от N до N^2 http://www.cyberforum.ru/cpp-beginners/thread912682.html
помогите написать подпрограмму считающую сумму нечётных чисел, содержащих цифру 5 от N до N^2. Я мало в этом шарю а надо сделать именно так помогите кто знает :\ Отблагадарю
C++ Описать структуру с именем NOTE Помогите пожалуйста с программой в C++ Вот задание: Описать структуру с именем NOTE, содержащую следующие поля: — фамилия, имя; — номер телефона; — день рождения (массив из трех чисел). ... подробнее

Показать сообщение отдельно
Kuzia domovenok
1892 / 1747 / 119
Регистрация: 25.03.2012
Сообщений: 5,936
Записей в блоге: 1
26.06.2013, 22:44
Цитата Сообщение от Toshkarik Посмотреть сообщение
Это undefined behaviour. Результат может быть каким угодно.
Никак не могу согласиться. В чём тут проявляется UB?
C++
1
cout << (--a)--
UB возникает при определённых обстоятельствах. А именно (если я правильно понял статью http://alenacpp.blogspot.ru/2005/11/sequence-points.html) это происходит при обращении к значению изменённой переменной до прохождения точки следования.

В данном же случае поведение строго определено скобками и свойствами операторов предекремента/постдекремента.

Ответ:
-Сначала выполнится выражение в скобках.
-Переменная а будет уменьшена на 1 и возвращёно значение а после уменьшения, т.к. ПРЕдекремент.
-Затем значение а будет ещё раз уменьшено вторым оператором --, но на вывод будет возвращено значение а бывшее ДО декремента, т.к. ПОСТдекремент.
-Например, следующая программа выведет "-1 -2"
C++
1
2
3
int a=0;
cout << (--a)-- <<endl;
cout << a         <<endl;
Очевидно, что иногда люди, услышав где-то про классическое
- вопрос: какой результат у выражения i=i++ + i++;?
- ответ: UB
начинают распространять этот ответ на любые подобные(и не совсем подобные) выражения, не задумываясь о настоящих причинах UB или не UB. Так, что вот.
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru