a++
和 ++a
在 C/C++ 等编程语言中都表示对变量 a
自增 1,但它们的使用上有一些区别,主要体现在表达式中的值和副作用发生的时间上。
a++
是后置自增运算符。它首先返回变量a
的原始值,然后再对a
进行加 1 操作。也就是说,如果你在表达式中使用a++
,那么表达式的结果将是a
自增前的值。++a
是前置自增运算符。它首先对a
进行加 1 操作,然后再返回加 1 后的值。也就是说,如果你在表达式中使用++a
,那么表达式的结果将是a
自增后的值。
举个例子:
int a = 5;
int b = a++; // b 的值是 5,a 的值是 6
int c = ++a; // c 的值是 7,a 的值是 7
代码实现:
#include <stdio.h>
int main(void){
int i = 5;
int j = i++;
printf("i=%d, j=%d\n", i, j);
int a = 5;
int b = ++a;
printf("a=%d, b=%d", a, b);
return 0;
}