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

Постфиксная и префиксная форма инкремента и декремента. - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Распечатка букв из текста http://www.cyberforum.ru/cpp-beginners/thread84109.html
Доброго времени суток, очень надеюсь на вашу помощь в решении задачки для с++ (6.0), условие которой звучит следущим образом: "Распечатать в порядке, обратном алфавитному, все буквы, которые входят...
C++ Как сделать задержку в самом конце программы? Народ, подскажите, как произвести задержку в самом конце программы, чтобы после выведения результата, окно вывода не закрывалось автоматически? В паскале задержку вконце можно произвести с помощью... http://www.cyberforum.ru/cpp-beginners/thread84102.html
C++ Баг в C++Bulder’e 2010 ?
В C++Bulder’e 2010 столкнулся с такой проблемой (или возможно даже багом): Когда создал меню с помощью TMainMenu и в нем раздел (допустим «Выход») и хотел задать действие по OnClick, то в списке...
Как обнулить массив из внешней функции? C++
Здравствуйте. Нужно составить функцию, которая обнуляет массив, переданный по ссылке. У меня не получается это сделать. Помогите. Функция выглядит приблизительно так: void clrarr(int** arr)...
C++ Строки(вывод) http://www.cyberforum.ru/cpp-beginners/thread84085.html
такая проблема... дана задача Вывести на экран последние 5 символов заданной строки. Длина строки должна быть не менее 10. через функцию работает: ...
C++ Использование указателей в программах Составить программу для подсчёта суммы положительных элементов квадратной таблицы В, состоящей из N×N целых чисел, расположенных на побочной диагонали. Использовать динамический массив. подробнее

Показать сообщение отдельно
Search..
Заказ софта
340 / 185 / 10
Регистрация: 26.05.2009
Сообщений: 863
10.01.2010, 06:17
Привет. Сейчас постараюсь объяснить.

Тот же самый код, только красивее написан:

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
#include <iostream> // Для cout и cin
 
int main(int argc, char *argv[])
{
    int a, b, c, d, e, f;           // Не инициализированные переменные хранят мусор. Это чтобы напомнить ...
 
    std::cout << "Enter A: ";       // Введите A:
    std::cin  >> a;             // Вводим 2
    std::cout << "Enter B: ";       // Введите B:
    std::cin  >> b;             // Вводим 3
 
    c = ++a;                // A увеличится на 1, после чего присвоится переменной C. Итого: A = 3 и С = 3
    d = a++;                // A присвоится переменной D, после чего A увеличится на 1. Итого: D = 3 и А = 4
    e = --b;                // B уменьшится на 1, после чего присвоится переменной E. Итого: B = 2 и E = 2
    f = b--;                // B присвоится переменной F, после чего B уменьшится на 1. Итого: F = 2 и B = 1
 
    std::cout << "A = " << a << "\n";   // A = 4
    std::cout << "B = " << b << "\n";   // B = 1
    std::cout << "C = " << c << "\n";   // С = 3
    std::cout << "D = " << d << "\n";   // D = 3
    std::cout << "E = " << e << "\n";   // E = 2
    std::cout << "F = " << f << "\n";   // F = 2
 
    return false;                           // false - это 0. Просто мне так больше нравится ...
}
Теперь о постфиксе и о префиксе. О инкременте и декременте.

Инкремент - это оператор (++), который увеличивает число на 1.
Декремент - это оператор (--), который уменьшает число на 1.

Постфиксный - это означает то, что сначала над операндом (переменной) делаются какие-то операции и только после всех этих операций, действует оператор инкремента или декремента. То есть, если у нас такая строчка: A = 5 * B--;, то это будет читаться так: умножить 5 на B и присвоить полученный результат переменной A, после чего уменьшить переменную B на единицу.

Префиксный - это противоположность постфиксному. Сначала оператор инкремента или декремента увеличивает или уменьшает операнд (переменную) и только после этого над ним производятся остальные операции, если они есть. То есть, если у нас такая строчка: A = 5 * --B;, то это будет читаться так: уменьшить значение переменной B на единицу, после чего умножить 5 на B (а в это время в переменной B уже будет хранится значение, которое на единицу меньше изначального) и присвоить результат переменной A.

Надеюсь, объяснил ясно и доступно. Желаю удачи в изучении. Пока =)
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru