a++和++a都适用于增加变量a的操作符,都是a=a+1,但是两者的结果却不一样。
a++先进行赋值,再进行加运算;
++a先进行加运算,再进行赋值。
a++:
#include<stdio.h>
int main()
{
int a = 3;
int b = a++;//后置++,先将a的值使用,再进行加一。
printf("a的值为%d\nb的值为%d\n",a,b);
return 0;
}
运行结果为:
a的结果为4
b的结果为3
可以看出,a++是先赋值再加一。
++a:
#include<stdio.h>
int main()
{
int a = 3;
int b = ++a;//前置++,先将a的值加一,再进行赋值。
printf("a的值为%d\nb的值为%d\n",a,b);
return 0;
}
运行结果为:
a的结果为4
b的结果为4
可以看出,++a是先加一,再进行赋值。
总结
a++先返回a的值再进行自增,++a先自增a的值再返回。大多数情况下两种形式可以等同,但是某些特定场景需要区分使用。