自增运算符++会把操作数加1,自减运算符--会把操作数减1,并且可以控制效果作用于运算之前还是之后,具有很大的便利性。
自增自减运算符存在于C/C++/C#/Java/Python等高级语言中,它的作用是在运算结束前(前置自增自减运算符)或后(后置自增自减运算符)将变量的值加(或减)一。
相较于这些语言中的+=和-=运算符,自增运算符更加简洁,且可以控制效果作用于运算之前还是之后,具有很大的便利性。
自增运算符 ++ 使操作数的值加1,其操作数必须为可变左值(可简单地理解为变量)。对于自增就是加1这一点,Eric想大家都不会有什么疑问。
++ 可以置于操作数前面,也可以放在后面,如:
++i;
i++ ;
++i表示,i自增1后再参与其它运算;而i++ 则是i参与运算后,i的值再自增1。
自减运算符--与之类似,只不过是变加为减而已,故不重述。
下面我们通过一些实例来深入理解自增运算符的特性,自减运算符同理自悟
例:int i=3;
int j=4;
i++;
++j;
printf("%d, %d\n", i, j);
对此,Eric想大家都不会有什么困惑,结果就是 4,5;下面我们来做一点小改动:int i=3;
int j=4;
int a = i++;
int b = ++j;
printf("%d, %d\n", a, b);
结果又是多少呢?这里就开始体现出++前置与后置的区别了,结果是3,5。结合此例,我们回头再来理解一下“++前置:i自增1后再参与其它运算;++后置:i参与运算后,i的值再自增1”。很明显,a = i++;由于是先执行赋值运算,再自增,所以结果是a=3,i=4;而b = ++j;
则因先自增,然后再赋值,所以b,j均为5。