Trong C, các toán tử ++ và - được gọi là các toán tử tăng và giảm. Chúng là toán tử một ngôi chỉ cần một toán hạng. Do đó, toán tử ++ cũng như - có thể xuất hiện trước hoặc sau toán hạng với cùng tác dụng.
Điều đó có nghĩa là cả i ++ và ++ i sẽ tương đương nhau.
i=5; i++; printf("%d",i);
và
i=5 ++i; printf("%d",i);
cả hai sẽ làm cho i =6.
Tuy nhiên, khi biểu thức tăng dần được sử dụng cùng với toán tử gán, thì quyền ưu tiên của toán tử sẽ xuất hiện.
i=5; j=i++;
Trong trường hợp này, mức độ ưu tiên của =cao hơn postfix ++. Vì vậy, giá trị của i được gán cho i trước khi tăng i. Ở đây j trở thành 5 và tôi trở thành 6.
i=5; j=++i;
Trong trường hợp này, mức độ ưu tiên của tiền tố ++ nhiều hơn toán tử =. Vì vậy, tôi sẽ tăng trước và giá trị tăng dần được gán cho j Ở đây tôi và j đều trở thành 6.
#include <stdio.h> int main() { int i=5,j; j=i++; printf ("\nafter postfix increment i=%d j=%d", i,j); i=5; j=++i; printf ("\n after prefix increment i=%d j=%d",i,j); return 0; }
Đầu ra là
after postfix increment i=6 j=5 after prefix increment i=6 j=6