Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗cpPmNuPP 49 of 390 menu
◀ ▶

Префикс и постфикс в C++

Инкремент и декремент записывают двумя способами. В постфиксном виде знак стоит после имени: num1++. В префиксном виде знак стоит перед именем: ++num1.

В следующем примере первый вывод покажет 0: сначала значение печатается, и только потом переменная увеличивается:

int num1 = 0; std::cout << num1++ << "\n"; // выведет 0 std::cout << num1 << "\n"; // выведет 1

Теперь переменная увеличивается до вывода:

int num1 = 0; std::cout << ++num1 << "\n"; // выведет 1

Так же устроено присваивание. В num2 попадает старое значение, а num1 увеличивается следом:

int num1 = 0; int num2 = num1++; // в num2 запишется 0 std::cout << num2 << "\n"; // выведет 0 std::cout << num1 << "\n"; // выведет 1

В префиксной форме в num2 сразу попадает уже увеличенное значение:

int num1 = 0; int num2 = ++num1; // в num2 запишется 1 std::cout << num2 << "\n"; // выведет 1

Если операция стоит на отдельной строке, разницы между формами нет:

int num1 = 0; ++num1; num1++; std::cout << num1 << "\n"; // выведет 2

Не запуская код, определите, что выведется на экран:

int num1 = 3; std::cout << ++num1 << "\n";

Не запуская код, определите, что выведется на экран:

int num1 = 3; std::cout << num1++ << "\n";

Не запуская код, определите, что выведется на экран:

int num1 = 3; std::cout << --num1 << "\n";

Не запуская код, определите, что выведется на экран:

int num1 = 3; std::cout << num1-- << "\n";

Не запуская код, определите, что выведется на экран:

int num1 = 3; int num2 = ++num1; std::cout << num1 << "\n"; std::cout << num2 << "\n";

Не запуская код, определите, что выведется на экран:

int num1 = 3; int num2 = num1++; std::cout << num1 << "\n"; std::cout << num2 << "\n";
← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить