Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C++

Toán tử tăng ++ và giảm -- trong C++

Toán tử tăng ++ cộng 1 vào toán hạng, toán tử giảm -- trừ 1 từ toán hạng. Vậy:

x = x + 1;  // tương đương  x++;
x = x - 1;  // tương đương  x--;

Cả hai toán tử đều có thể đứng trước (tiền tố/prefix) hoặc sau (hậu tố/postfix) toán hạng.

x = x + 1;  // có thể viết  ++x;

Lưu ý: Khi dùng tăng/giảm như một phần biểu thức, có sự khác biệt quan trọng giữa tiền tố và hậu tố. Nếu dùng tiền tố, tăng/giảm diễn ra trước phần còn lại của biểu thức. Nếu dùng hậu tố, tăng/giảm diễn ra sau khi toàn bộ biểu thức đã được đánh giá.

  • Tiền tố (++i): giá trị i được tăng, và giá trị biểu thức là giá trị mới của i. Tức là tăng trước, gán cho biểu thức sau.
  • Hậu tố (i++): giá trị i được tăng, nhưng giá trị biểu thức là giá trị cũ của i. Tức là gán cho biểu thức trước, tăng biến sau.

Ví dụ

#include <iostream>
using namespace std;
int main() {
    int x = 3, y, z;
    y = x++;
    z = ++x;
    cout << x << ", " << y << ", " << z;
    return 0;
}

Kết quả

5, 3, 5

Tại sao? Chi tiết:

  • Khởi tạo x = 3
  • Gán y giá trị từ biểu thức x++, tức giá trị x trước khi tăng, rồi mới tăng x (x thành 4, y = 3)
  • Tăng x rồi gán z giá trị từ biểu thức ++x, tức giá trị x sau khi tăng (x thành 5, z = 5)
  • In các giá trị