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

Вывод в поток и операция инкремента / декремента - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Удаление эллементов с массива http://www.cyberforum.ru/cpp-beginners/thread692909.html
У меня к примеру есть массив 1 2 3 4 5 6 И нужно с него удалить все четные и освободить память занятую ненужными элементами. Я делаю сортировку ,и по одному откидываю все четные в конец массива...
C++ 2-х массив сортировка Привет всем. люди добрые подскажите пж по такому условию есть массив: 1 3 4 9 7 6 1 6 1 мах в этом массиве мах1=4, мах2=9, мах3=6 по строчкам как можно сделать так чтобы максимальная... http://www.cyberforum.ru/cpp-beginners/thread692897.html
Двухмерный динамический массив C++
Мне нужно создать 4 многомерных динамических массивов, размерность которых 10000000 10000000, и у меня не получалось их создавать на столько большими, непосредственно в коде создавал все 4, потому...
C++ Электронные часы, проверка ввода
есть рабочий код, помогите модернизировать, время вводится пользователем, выход на российский формат и европейский формат. Нужно чтоб еще проверку делал если ввод неверный и выдавал сообщение с...
C++ Библиотека для удобной работы с типом string с++ http://www.cyberforum.ru/cpp-beginners/thread692869.html
Привет, надо проводить много манипуляций со строками - обрезка, перенос строки, выравнивание - для интерфейса 3D-игры. Есть ли готовая библиотека для таких операций? Для ОС Windows.
C++ Обработка двумерных массивов (Вычислить матрицу D, равную произведению элементов матрицы М на константу.) Дана матрица М (4 5) и константа С. Вычислить матрицу D, равную произведению элементов матрицы М на константу. Помогите плиз)) подробнее

Показать сообщение отдельно
D.E.S.P.E.R.O.
9 / 9 / 0
Регистрация: 12.03.2009
Сообщений: 110
Завершенные тесты: 1

Вывод в поток и операция инкремента / декремента - C++

09.11.2012, 13:33. Просмотров 655. Ответов 13
Метки (Все метки)

При использовании следующего оператора вывода в поток:
C++
1
2
int n = 10;
cout << n++ << ' ' << n << ' ' << --n << endl;
получил такой странный вывод:
9 10 10
Я знаю, что в принцыпе это undefined behavior и зависит от реализации компилятора, но все же... Результат схож с вычислением этих переменных при передаче в функция в VS, где вычисление выражений реализовано с права на лево, но ведь вывод в поток - это перегруженый оператор <<, то есть функция с одним параметром, возвращающая ссылку на поток.
Что еще печальнее, вывод аналогичен использованию:
C++
1
printf("%d %d %d\n", m++, m, --m);
А это вообще функция с неопределенным количеством аргументов, которые тоже должны вычислятся слева на право по смещению указателя на размер типа следующего аргумента...
Может кто-нибудь все-таки объяснит как это все реализовано?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru