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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 5.00
KeyGen
384 / 291 / 6
Регистрация: 07.08.2011
Сообщений: 790
Записей в блоге: 1
#1

Операции инкремента и декремента (префиксная и постфиксная версия). Подскажите. - C++

23.08.2011, 19:14. Просмотров 1215. Ответов 4
Метки нет (Все метки)

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#include <iostream>
#include <string>
 
using namespace std;
 
int main ()
{
 
     setlocale(LC_ALL, "rus");
    
 
//////////////////////////////////////////////////////// 
    //Ïî÷åìó Г*ГҐ Г±Г°Г*ГЎГ*òûâГ*ГҐГІ Гў ïåðâîì ГўГ*ðèГ*Г*ГІГҐ?
 
 // 1  
    int n1 =3;
    ++n1; 
    int n2 =3;
    n2++;
    
    cout << "\n×èñëî ++n: " << n1;
    cout << "\n×èñëî n++: " << n2;
 
 // 2
    n1 =3;
    n2 =3;
    
    cout << "\n×èñëî ++n: " << ++n1;
    cout << "\n×èñëî n++: " << n2++;
////////////////////////////////////////////////////////    
    
    cout << endl;
    system("PAUSE");
    return 0;
Выполнение:
0
Миниатюры
Операции инкремента и декремента (префиксная и постфиксная версия). Подскажите.  
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.08.2011, 19:14
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Операции инкремента и декремента (префиксная и постфиксная версия). Подскажите. (C++):

Постфиксная и префиксная форма инкремента и декремента. - C++
Само задание: Написать программу с примерами постфиксной и префиксной формами инкремента и декремента. Число вводится с клавиатуры. ...

Префиксная и постфиксная запись инкремента - C++
#include &lt;iostream&gt; using namespace std; int main() { setlocale(LC_ALL, &quot;rus&quot;); int х = 1; int a = 0;

Префиксные и постфиксные операции инкремента и декремента + наследование - C++
Дано: Два класса(Counter и CountDn), следует при помощи наследования добавить функцию постфиксных операций. На то, что я набросал выдает...

Операторы инкремента и декремента - C++
Создайте в классе Circle префиксный и постфиксный операторы инкремента и декремента, воздействующие только на член-данное радиус itsRadius.

Использование инкремента(Декремента) - C++
Есть три кнопки и три индикатора(лампочки). Если нажимаю кнопку-1 тогда включается лампочка нажимаю еще раз выключается. Если по одному...

Ассоциативность инкремента декремента - C++
Всем привет. Вот такую табличку недавно нашел - http://ru.cppreference.com/w/cpp/language/operator_precedence Почему префиксный...

4
Сыроежка
Заблокирован
23.08.2011, 19:17 #2
Цитата Сообщение от KeyGen Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#include <iostream>
#include <string>
 
using namespace std;
 
int main ()
{
 
     setlocale(LC_ALL, "rus");
    
 
//////////////////////////////////////////////////////// 
    //Ïî÷åìó Г*ГҐ Г±Г°Г*ГЎГ*òûâГ*ГҐГІ Гў ïåðâîì ГўГ*ðèГ*Г*ГІГҐ?
 
 // 1  
    int n1 =3;
    ++n1; 
    int n2 =3;
    n2++;
    
    cout << "\n×èñëî ++n: " << n1;
    cout << "\n×èñëî n++: " << n2;
 
 // 2
    n1 =3;
    n2 =3;
    
    cout << "\n×èñëî ++n: " << ++n1;
    cout << "\n×èñëî n++: " << n2++;
////////////////////////////////////////////////////////    
    
    cout << endl;
    system("PAUSE");
    return 0;
Что у вас не работает в первом варианте? Какой результат вы ожидали? Должно выдать на печать, что n1 и n2 равны 4., а во втором случае соответственно 4 и 3.
0
KeyGen
384 / 291 / 6
Регистрация: 07.08.2011
Сообщений: 790
Записей в блоге: 1
23.08.2011, 19:24  [ТС] #3
Цитата из книги:
"... a++ означает "использовать значение а при вычислении, затем увеличить на единицу"...".
В первом варианте значение изменяется не зависимо от положение декремента, во втором не меняется n2 почему такая разница?
0
Сыроежка
Заблокирован
23.08.2011, 19:31 #4
Цитата Сообщение от KeyGen Посмотреть сообщение
Цитата из книги:
"... a++ означает "использовать значение а при вычислении, затем увеличить на единицу"...".
В первом варианте значение изменяется не зависимо от положение декремента, во втором не меняется n2 почему такая разница?
Потому что в первом выражении при завершении полного выражения имеется точка последовательности. Это означает, что побочные эффекты, то есть изменение n2 будет в этом месте завершено, то есть в переменную n2
будет записано инкриментированное выражение.
Во-втором случае будет именно так, как описано в вашей книге.
1
ValeryS
Модератор
6786 / 5194 / 497
Регистрация: 14.02.2011
Сообщений: 17,432
23.08.2011, 19:35 #5
Цитата Сообщение от KeyGen Посмотреть сообщение
В первом варианте значение изменяется не зависимо от положение декремента, во втором не меняется n2 почему такая разница?
сам то как думаешь???
C++
1
2
3
4
5
int n1 =3;// здесь три
    ++n1; // здесь четыре
 int n2 =3;// здесь три
    n2++;  // здесь три до точки с запятой
              // а здесь уже четыре
1
23.08.2011, 19:35
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.08.2011, 19:35
Привет! Вот еще темы с ответами:

Вывод в поток и операция инкремента / декремента - C++
При использовании следующего оператора вывода в поток: int n = 10; cout &lt;&lt; n++ &lt;&lt; ' ' &lt;&lt; n &lt;&lt; ' ' &lt;&lt; --n &lt;&lt; endl; получил такой...

Перегрузка оператора инкремента/декремента через friend - C++
Нужно реализовать перегрузку унарного оператора через friend. Что я пытаюсь сделать: friend void operator -- ();//prototype void...

Перегрузка операции инкремента - C++
Как известно, постинкремент возвращает r-value, а преинкремент - l-value. То есть: ++(++x); // допустимо (x++)++; // ошибка...

Переопределение операции инкремента - C++
Добрый вечер! Задачка простая и кода с примерами в сети куча, но меня волнует вопрос почему компилятор ругается на мой код: Myclass...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru