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

Инкрементация (не могу понять почему так?) - C++

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 24, средняя оценка - 4.63
Tamara333
 Аватар для Tamara333
3 / 3 / 0
Регистрация: 27.12.2010
Сообщений: 22
16.01.2011, 16:01     Инкрементация (не могу понять почему так?) #1
Гуру в программировании на C++ начала изучать язык, и сразу вопросы
почему при выполнении

C++
1
2
3
4
5
6
7
8
9
10
11
#pragma argsused
#include <conio.h>
#include<iostream.h>
 
int main()
{
 int a=0;
 printf("%d \n%d \n%d \n%d \n%d \n%d \n%d",a,a++,a++,a++,a++,a++,a++);
 getch();
 return 0;
}


выдает

6
5
4
3
2
1
0

а не наоборот
0
1
2
3
4
5
6

???

Добавлено через 22 минуты
с нетерпением жду ответа =)
Лучшие ответы (1)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Day
 Аватар для Day
1149 / 954 / 57
Регистрация: 29.10.2009
Сообщений: 1,384
17.01.2011, 13:01     Инкрементация (не могу понять почему так?) #21
Цитата Сообщение от silent_1991 Посмотреть сообщение

Не по теме:


А нам-то что? Пусть хоть лопнет.

Но нам-то, сишникам, от этих конструкций одни слезы...

Не подумай только, что я против инкрементальных операций. Вовсе нет, напротив, считаю их просто гениальным изобретением. Но как говаривал покойный Залевски, все хорошо в меру.
Приведенная конструкция даже если и имеет однозначную трактовку в стандарте языка, требует скурпулезнейшей разборки и, естесственно, чревата трудноуловимыми ошибками. Тут я где-то встретил топик, где в 40 постах разбирался итог оператора
C
1
 i = i++ + i++;
Нам это надо?
Но если кому-то интересно, сколько чертей поместится на острие иглы - пожалуйста, ребята, играйте. экспериментируйте, полируйте мозги до блеска. Но когда будете решать серьезные задачи - пожалуйста, не надо.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
silent_1991
Эксперт C++
4945 / 3021 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
17.01.2011, 13:23     Инкрементация (не могу понять почему так?) #22
Day, да, но, с другой стороны, в мире куча опасных вещей, которые, однако, если их правильно использовать, только помогают нам, а если неправильно - убивают. Главное - знать, как с ними правильно обращаться, и плакать не придётся))
ForEveR
Модератор
Эксперт С++
 Аватар для ForEveR
7933 / 4715 / 318
Регистрация: 24.06.2010
Сообщений: 10,525
Завершенные тесты: 3
17.01.2011, 13:27     Инкрементация (не могу понять почему так?) #23
Day, Знать результаты таких действий полезно для собеседований.
Байт
 Аватар для Байт
14301 / 9132 / 1314
Регистрация: 24.12.2010
Сообщений: 16,692
17.01.2011, 18:04     Инкрементация (не могу понять почему так?) #24
Цитата Сообщение от ForEveR Посмотреть сообщение
Day, Знать результаты таких действий полезно для собеседований.
А с кем вы беседуете? Или с вами беседуют? И о чем?
Если б мне предложили такого типа вопросы при приеме на работу, я бы ногу поднял и хвостом махнул!
Есть другой вариант - если соискатель пытается на такой вопрос ответить - гнать его в загривок!
Если отвечает правильно - загрызть!
silent_1991
Эксперт C++
4945 / 3021 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
17.01.2011, 18:08     Инкрементация (не могу понять почему так?) #25
Цитата Сообщение от Байт Посмотреть сообщение
ногу поднял и хвостом махнул
И остались бы без работы. Кто остаётся в выигрыше?
Day
 Аватар для Day
1149 / 954 / 57
Регистрация: 29.10.2009
Сообщений: 1,384
17.01.2011, 18:09     Инкрементация (не могу понять почему так?) #26
Цитата Сообщение от silent_1991 Посмотреть сообщение
Day, да, но, с другой стороны, в мире куча опасных вещей, которые, однако, если их правильно использовать, только помогают нам, а если неправильно - убивают. Главное - знать, как с ними правильно обращаться, и плакать не придётся))
Захотелось перечитать Стругацких "Хищные вещи века"
Байт
 Аватар для Байт
14301 / 9132 / 1314
Регистрация: 24.12.2010
Сообщений: 16,692
17.01.2011, 18:19     Инкрементация (не могу понять почему так?) #27
Цитата Сообщение от silent_1991 Посмотреть сообщение
И остались бы без работы. Кто остаётся в выигрыше?
Или Работа без Меня. Ничья.
silent_1991
17.01.2011, 18:20
  #28

Не по теме:

Цитата Сообщение от Байт Посмотреть сообщение
Ничья
Да ладно...

ForEveR
Модератор
Эксперт С++
 Аватар для ForEveR
7933 / 4715 / 318
Регистрация: 24.06.2010
Сообщений: 10,525
Завершенные тесты: 3
17.01.2011, 18:25     Инкрементация (не могу понять почему так?) #29
Байт, Проигрыш.
+ к тому программист должен бы отличать UB от нормальной конструкции. Да и даже unspecified должен. А вот когда идут вопросы - что будет конкретно - стоит слать.
Temirlan90
 Аватар для Temirlan90
131 / 131 / 8
Регистрация: 30.09.2010
Сообщений: 333
17.01.2011, 22:39     Инкрементация (не могу понять почему так?) #30
А вот когда идут вопросы - что будет конкретно - стоит слать.
ForEveR, вы не могли бы пояснить, что вы под этим текстом имеете ввиду?
Что то вроде того чтобы давать точный ответ? или нет, не могу понять вас.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.01.2011, 01:55     Инкрементация (не могу понять почему так?)
Еще ссылки по теме:

Не могу понять, почему? C++
Не могу понять почему не запускается C++
C++ Символьные литералы, указатели и функция. Не могу понять, почему именно так
C++ Не могу понять почему не вычисляет

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
ForEveR
Модератор
Эксперт С++
 Аватар для ForEveR
7933 / 4715 / 318
Регистрация: 24.06.2010
Сообщений: 10,525
Завершенные тесты: 3
18.01.2011, 01:55     Инкрементация (не могу понять почему так?) #31
Temirlan90, Если при приеме на работу задается вопрос о том, что конкретно будет выведено на экран/консоль при undefined или unspecified - стоит посылать за ягодами такого специалиста.
Yandex
Объявления
18.01.2011, 01:55     Инкрементация (не могу понять почему так?)
Ответ Создать тему
Опции темы

Текущее время: 19:30. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru