通常说,a++是先取值后运算,++a是先运算后取值。++ 是一个“自增运算符”,自增运算符有两种形式:前缀自增(++a)和后缀自增(a++)。运算符和操作数合起来就是一个表达式(a++、++a都是表达式,a就是操作数)。
拓展资料:
1、每一个表达式本身都有值(和其类型),有的表达式还有“副作用”。比如自增表达式的副作用就是使其操作数自增1。那么自增运算表达式的值是什么呢? a++ 的值就是 a 的值,而 ++a 的值等于 a+1。
2、例如:int a = 100; 最开始时a是100。打印 a++; 这个printf会打印a++的值,注意是a++表达式的值,看前面的讲解,a++的值就是a的值,也就是100。 别忘了这语句结束后a的值就会自增1。打印 ++a; 目前a的值为101。现在要打印++a表达式的值,++a的值就等于a+1,所以会打印出102。 此语句后a=101+1=102。
b=a++;先把a的值赋给b,然后a自增1.
b=++a;a先加1,然后把自增后的值赋给b.
++运算优先级要高于算术运算
b*a++ b*a , a=a+1
b*++a a=a+1,b*a
无论是a++还是++a 运算一次后 a的值是一样的,受影响的是赋值对象.
两者都是自加运算。
区别:
a++是先进行赋值运算,就是b=a,然后a再加1;
++a是先进行自加运算,再进行赋值运算。
例如:
b=3; a=5;
b=a++; b=5;
b=++a; b=6
b*a++=3*5;
b*++a=3*6
拓展资料
自增自减运算符存在于C/C++/C#/Java等高级语言中,它的作用是在运算结束前(前置自增自减运算符)或后(后置自增自减运算符)将变量的值加(或减)一。
相较于这些语言中的+=和-=运算符,自增运算符更加简洁,且可以控制效果作用于运算之前还是之后,具有很大的便利性。
自增运算符 ++ 使操作数的值加1,其操作数必须为可变左值(可简单地理解为变量)。对于自增就是加1这一点,Eric想大家都不会有什么疑问。
++ 可以置于操作数前面,也可以放在后面,如:
++i;
i++ ;
++i表示,i自增1后再参与其它运算;而i++ 则是i参与运算后,i的值再自增1。
自减运算符--与之类似,只不过是变加为减而已,故不重述。
比如:
如果a=1,b=a++,运算完b=1,a=2
如果a=1,b=++a,运算完b=2,a=2