自增(++)和自减(--)运算符

来源:互联网 发布:单片机一键开关机 编辑:程序博客网 时间:2024/06/09 23:49

在C和C++中,常用的表达式中使用自增和自减运算符,他们的作用都是使变量的值增1或减1,如:

++i(在使用i之前,先使i的值加1,如果i的原值为3,则执行j=++i后,j的值为2)

--i(在使用i之前,先使i的值减1,如果i的原值为3,则执行j=--i后,j的值为4

i++(在使用i之后,i的值加1,如果i的原值为3,则执行j=i++后,j的值为3,i的值变为4

i--(在使用i之后,i的值减1,如果i的原值为3,则执行j=i--后,j的值为3,i的值变为2

注:①自增自减运算符只能用于变量,而不能用于常亮或表达式,如6++或(a+b)++都是不合法的。

②++和--的结合方向,前置的++和--的结合方向是自右向左的,后置的++和--的结合方向是自左向右的,并且后置的++和--运算符的优先级略高于前置的++和--,而且他们的优先级只低于::()[]->.这些运算符。

③自增自减运算符使用灵活,在很多情况可能出现歧义,如:

int i=3;

cout<<i++<<"  , "<<i++<<endl;

请问应该输出什么?很多人都会认为是3,4。而实际输出的是4,3。因为许多编译器系统在处理输出流时,先按自右向左的顺序对个输出项求值。


下面几个例题大家自己回去思考下哪些是对的,对的话i的值是多少:

1、+i++

2、(+i)++

3、(++i)++ 

4、(i++)++















0 0