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

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

Войти
Регистрация
Восстановить пароль
 
iluxa1810
13 / 13 / 5
Регистрация: 03.09.2011
Сообщений: 1,022
#1

Немного не понял ,написанное тут про инкремент и декремент - C++

22.11.2011, 16:35. Просмотров 784. Ответов 11
Метки нет (Все метки)

Немного не понял ,написанное тут про инкремент и декремент
Объясните на словах или на примерах .
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.11.2011, 16:35
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Немного не понял ,написанное тут про инкремент и декремент (C++):

Инкремент(Декремент) - C++
Есть ли разница,какую употреблять форму:префиксную или постфиксную? Если на экран выводится одно и то же число в префиксной и постфиксной...

Инкремент и декремент в сложных выражениях - C++
Почему в следующем коде выведется 5, а не 4? Постфиксный инкремент не должен же влиять в данном случае на выводимую сумму. int i = 1; ...

Потокобезопасен ли префиксный инкремент/декремент? - C++
Потокобезопасен ли префиксный инкремент/декремент? Например такой код: // Объявляем глобальную переменную uint64_t i=0; // Тут...

Интересный вывод, инкремент и декремент в cout - C++
Привет. Вот есть след. код: int i = 0; std::cout << i << " " << ++i << std::endl; неожиданный вывод, но понять можно. Но вот этот я...

Непонятный вывод: постфиксные и префиксные инкремент/декремент - C++
Под спойлером весь который можно просто скопипастить и запустить в онлайн компиляторе http://www.compileonline.com/compile_cpp11_online.php...

Инкремент, декремент и прочее. A+++ - что означают это три плюса - C++
день добрый х) в задании попалась такая операция: a+++ = b%2 так вот. что, собственно, означают это три плюса?я знаю что есть инкремент, но...

11
Байт
Эксперт C
16145 / 10423 / 1552
Регистрация: 24.12.2010
Сообщений: 19,736
22.11.2011, 16:48 #2
C
1
2
3
4
5
int a[] = { 1, 2, 3 };
int i = 0;
cout<<a[i++]; // Выводит 1
i = 0;
cout<<[++a]; // выводит 2
0
Андрей2011
29 / 23 / 2
Регистрация: 18.01.2011
Сообщений: 359
22.11.2011, 16:59 #3
короче говоря...когда ты пишешь:
int A=0;
int B=0;
B=A++;
То, B=0; - в результате.

когда ты пишешь:
int A=0;
int B=0;
B=++A;
То, B=1; - в результате.
Осознал?

т.е. 1 вариант, значение A меняется после присваивания.
2 вариант, значение А меняется перед присваиванием.
0
go
Эксперт С++
3586 / 1366 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
22.11.2011, 17:15 #4
Цитата Сообщение от Байт Посмотреть сообщение
cout<<[++a]; // выводит 2
так ведь нельзя, у вас же указатель константа...
C++
1
int *p;//лучше так объявлять указатель
Добавлено через 6 минут
iluxa1810, если разобрались, то угадайте, а чему будет равен n?
C
1
2
int i=1;
int n= ++i + ++i;
0
SlesherY
6 / 6 / 1
Регистрация: 14.11.2011
Сообщений: 54
22.11.2011, 17:36 #5
Цитата Сообщение от go Посмотреть сообщение
если разобрались, то угадайте, а чему будет равен n?
єто уже меня сбило... почему выходит не 5?
было 1, потом н = 2+3... или не так ?
0
go
Эксперт С++
3586 / 1366 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
22.11.2011, 17:50 #6
Цитата Сообщение от SlesherY Посмотреть сообщение
потом н = 2+3... или не так ?
n= 3+3
мы сначала i увеличили на два, т.к. приоритет операции инкремент выше чем сложения.
0
iluxa1810
13 / 13 / 5
Регистрация: 03.09.2011
Сообщений: 1,022
22.11.2011, 18:08  [ТС] #7
C++
1
2
int i=1;
int n= i++ + i++;
А если так,то первый раз будет 2 ,во второй раз если вызовим будет 6 ?
0
go
Эксперт С++
3586 / 1366 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
22.11.2011, 18:13 #8
iluxa1810, n=2, потом i увеличивается на 1, потом опять на 1 и в итоге i=3
0
Thinker
Эксперт С++
4226 / 2200 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
22.11.2011, 18:18 #9
Цитата Сообщение от go Посмотреть сообщение
угадайте, а чему будет равен n?
C
1
2
int i=1;
int n= ++i + ++i;
Стивен Прата в параграфе "Не будьте слишком самоуверенными" пишет, что такой код может быть источником ошибок и не стоит обольщаться, что мы знаем как вычислит компилятор это выражение.
0
go
22.11.2011, 18:21
  #10

Не по теме:

Цитата Сообщение от Thinker Посмотреть сообщение
Стивен Прата в параграфе "Не будьте слишком самоуверенными" пишет, что такой код может быть источником ошибок и не стоит обольщаться, что мы знаем как вычислит компилятор это выражение.
Вы правы, не стоит так писать...
Я лишь привел, для того, чтобы автор мог поупражняться, на первом этапе это интересно и полезно

0
Thinker
22.11.2011, 18:23
  #11

Не по теме:

go, ничего не имею против, просто уточнил)

0
Байт
Эксперт C
16145 / 10423 / 1552
Регистрация: 24.12.2010
Сообщений: 19,736
22.11.2011, 20:19 #12
Цитата Сообщение от Байт Посмотреть сообщение
C
1
2
3
4
5
int a[] = { 1, 2, 3 };
int i = 0;
cout<<a[i++]; // Выводит 1
i = 0;
cout<<[++a]; // выводит 2
Всем приношу глубокие извинения.
Конечно, описка.
Следует последнюю строчку читать cout<<a[++i];
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.11.2011, 20:19
Привет! Вот еще темы с ответами:

Немного не понял описание классов - C++
#pragma once #include &lt;QWidget&gt; #include &lt;QSettings&gt; class QComboBox; class QCheckBox; class QTextEdit; class...

я тут написал программу и не понял одной команды! - C++
взаимно простые числа Вот программа: #include &lt;iostream&gt; #include &lt;locale.h&gt; #include &lt;conio.h&gt; using namespace std; int...

Перевод из Pascal в C++ (тут немного) - C++
Program hjk; var x,s:real; n,i:integer; begin writeln('Vvedite x'); readln(x); writeln('Vvedite n'); readln(n); for i:=1...

не очень понял про динамическое выделение памяти. - C++
У меня есть массив строк состоящий из 100 элементов string *строки; строки = new string ; Но при использовании я не знаю...


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

Или воспользуйтесь поиском по форуму:
12
Yandex
Объявления
22.11.2011, 20:19
Ответ Создать тему
Опции темы

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