Использование префиксного и постфиксного инкремента/декремента (++i, i++)
В этом шаге вы узнаете о операторах инкремента и декремента в языке C++. Эти операторы позволяют увеличивать или уменьшать значение переменной на 1, причем между префиксным и постфиксным инкрементом есть незначительные различия.
Откройте WebIDE и создайте новый файл с именем increment_decrement.cpp
в директории ~/project
:
touch ~/project/increment_decrement.cpp
Добавьте следующий код в файл increment_decrement.cpp
:
#include <iostream>
int main() {
// Pre-increment (++i)
int a = 5;
std::cout << "Original value of a: " << a << std::endl;
// Pre-increment: increment happens before the value is used
std::cout << "Pre-increment (++a): " << ++a << std::endl;
std::cout << "Value after pre-increment: " << a << std::endl;
// Post-increment (i++)
int b = 5;
std::cout << "\nOriginal value of b: " << b << std::endl;
// Post-increment: increment happens after the value is used
std::cout << "Post-increment (b++): " << b++ << std::endl;
std::cout << "Value after post-increment: " << b << std::endl;
// Decrement operators work similarly
int c = 5;
std::cout << "\nPre-decrement (--c): " << --c << std::endl;
int d = 5;
std::cout << "Post-decrement (d--): " << d-- << std::endl;
std::cout << "Value after post-decrement: " << d << std::endl;
return 0;
}
Скомпилируйте и запустите программу:
g++ increment_decrement.cpp -o increment_decrement
./increment_decrement
Пример вывода:
Original value of a: 5
Pre-increment (++a): 6
Value after pre-increment: 6
Original value of b: 5
Post-increment (b++): 5
Value after post-increment: 6
Pre-decrement (--c): 4
Post-decrement (d--): 5
Value after post-decrement: 4
Основные различия:
- Префиксный инкремент
++i
: Увеличивает значение до его использования в выражении. В примере кода ++a
сначала увеличивает a
до 6
, а затем значение 6
используется в инструкции cout
.
- Постфиксный инкремент
i++
: Сначала использует текущее значение в выражении, а затем увеличивает значение. В примере кода b++
сначала использует текущее значение b
, которое равно 5
, в инструкции cout
, а затем увеличивает b
до 6
.
Те же принципы применяются к операторам декремента --i
и i--
, где --i
сначала уменьшает значение, а затем использует его, а i--
сначала использует значение, а затем уменьшает его.
Важные замечания:
- Префиксный инкремент изменяет значение до его использования в выражении, то есть увеличенное значение сразу же доступно для использования.
- Постфиксный инкремент сначала использует исходное значение, а затем увеличивает его. Это означает, что в текущей инструкции вы получаете исходное значение, а в следующей — увеличенное.
- Эти операторы обычно используются в циклах (например, в циклах
for
) и сложных выражениях, где вы хотите изменить переменную, используя одновременно ее значение.
- При использовании этих операторов, особенно в сложных выражениях, важно помнить, нужна ли вам префиксная или постфиксная версия, чтобы получить желаемое поведение.