自增(++)和自減(--)運算符

在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++)++















發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章