Использование префиксного и постфиксного инкремента/декремента (++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) и сложных выражениях, где вы хотите изменить переменную, используя одновременно ее значение.
- При использовании этих операторов, особенно в сложных выражениях, важно помнить, нужна ли вам префиксная или постфиксная версия, чтобы получить желаемое поведение.