Toán tử tăng ++ thêm 1 vào toán hạng của nó và toán tử giảm -- trừ 1 khỏi toán hạng của nó. Do đó -
x = x+1; is the same as x++;
Và tương tự -
x = x-1; is the same as x--;
Cả toán tử tăng và giảm đều có thể đứng trước [tiền tố] hoặc theo sau [hậu tố] toán hạng. Ví dụ -
x = x+1; can be written as ++x; // prefix form
hoặc như -
x++; // postfix form
Khi tăng hoặc giảm được sử dụng như một phần của biểu thức, có một sự khác biệt quan trọng trong các dạng tiền tố và hậu tố. Nếu bạn đang sử dụng dạng tiền tố thì việc tăng hoặc giảm sẽ được thực hiện trước phần còn lại của biểu thức và nếu bạn đang sử dụng dạng hậu tố thì việc tăng hoặc giảm sẽ được thực hiện sau khi đánh giá xong biểu thức
1] Toán tử tăng. Toán tử gia tăng được sử dụng để tăng giá trị của một biến trong một biểu thức. Trong Pre-Increment, giá trị đầu tiên được tăng lên và sau đó được sử dụng bên trong biểu thức. Trong khi ở Post-Increment, giá trị đầu tiên được sử dụng bên trong biểu thức và sau đó tăng dần.
cú pháp
// PREFIX ++m // POSTFIX m++ where m is a variable
Ví dụ.
C
x++; // postfix form9
// PREFIX ++m // POSTFIX m++ where m is a variable0
// PREFIX ++m // POSTFIX m++ where m is a variable1
// PREFIX ++m // POSTFIX m++ where m is a variable2
// PREFIX ++m // POSTFIX m++ where m is a variable1
// PREFIX ++m // POSTFIX m++ where m is a variable4
// PREFIX ++m // POSTFIX m++ where m is a variable1
5 61
5 62
5 63____54
// PREFIX ++m // POSTFIX m++ where m is a variable0
5 63
5 67
5 63
5 69
5 63____141____142
x = x-1; is the same as x--;43
x = x-1; is the same as x--;44
// PREFIX ++m // POSTFIX m++ where m is a variable0
5 63____147
5 63____41
x = x+1; can be written as ++x; // prefix form10
5 63____141____142
x = x+1; can be written as ++x; // prefix form14
x = x+1; can be written as ++x; // prefix form15
x = x+1; can be written as ++x; // prefix form16
// PREFIX ++m // POSTFIX m++ where m is a variable0
x = x+1; can be written as ++x; // prefix form18
// PREFIX ++m // POSTFIX m++ where m is a variable1
x++; // postfix form90
5 62
5 63______41
x++; // postfix form94
_______53____396
// PREFIX ++m // POSTFIX m++ where m is a variable0
5 63____399
// PREFIX ++m // POSTFIX m++ where m is a variable00
x = x+1; can be written as ++x; // prefix form16
đầu ra
5 6
2] Toán tử giảm dần. Toán tử giảm được sử dụng để giảm giá trị của một biến trong một biểu thức. Trong Pre-Decrement, giá trị được giảm trước tiên và sau đó được sử dụng bên trong biểu thức. Trong khi ở Post-Decrement, giá trị đầu tiên được sử dụng bên trong biểu thức và sau đó giảm dần.
Toán tử tăng sau. Toán tử tăng sau được sử dụng để tăng giá trị của một biến sau khi thực hiện biểu thức trong đó toán tử được sử dụng. Với toán tử tăng sau, giá trị của biến trước tiên được sử dụng trong một biểu thức và sau đó tăng dần
cú pháp
x++; // postfix form5
Giá trị của
5 68 sẽ là 10 vì giá trị của
5 69 được gán cho
5 68 và sau đó
5 69 được tăng lên
Toán tử sau giảm. Toán tử giảm sau được sử dụng để giảm giá trị của một biến sau khi thực hiện biểu thức trong đó toán tử được sử dụng. Với toán tử giảm sau, giá trị của biến trước tiên được sử dụng trong một biểu thức và sau đó giảm dần
cú pháp
x++; // postfix form6
Giá trị của
5 68 sẽ là 10 vì giá trị của
5 69 được gán cho
5 68 và sau đó
5 69 được giảm dần
Toán tử tiền tố
Toán tử tăng trước. Toán tử tăng trước được sử dụng để tăng giá trị của một biến trước khi sử dụng nó trong một biểu thức. Với toán tử tăng trước, giá trị của biến trước tiên được tăng lên và sau đó được sử dụng trong một biểu thức
cú pháp
x++; // postfix form7
Giá trị của
5 68 sẽ là 11 vì giá trị của
5 69 được tăng lên trước khi nó được gán cho
5 68
Toán tử giảm trước. Toán tử giảm trước được sử dụng để giảm giá trị của một biến trước khi sử dụng nó trong một biểu thức. Với toán tử giảm trước, giá trị của biến được giảm trước và sau đó được sử dụng trong một biểu thức
cú pháp
x++; // postfix form8
Giá trị của
5 68 sẽ là 9 vì giá trị của
5 69 bị giảm đi trước khi nó được gán cho
5 68
Sự khác biệt khác
Toán tử hậu tố có độ ưu tiên cao hơn toán tử hậu tố, cũng như tính kết hợp khác. Toán tử tiền tố được đánh giá từ trái sang phải trong khi toán tử tiền tố được đánh giá từ phải sang trái