++,--運算符及其副作用

++i,- - i,使用i值之後,再使i值+1或者-1。

i++,i--,使i值+1或者-1後再使用i值。  


1、++,--結合方向是自右至左的,算術運算符是自左至右的,而且兩者同優先級。


int  i = 1;

int  j = -i++;

運行後的結果是i = 2 j = -1, -i++ 實際上是 -(i++)(結合方向),由於是後++,因此先使用i的值,再取其相反數-i,並賦給j,最後再在i的值上加+1。

若改成 int  j = -++i; ,則運行結果是i = 2 j = -2 -i++ 實際上是 -(++i),此處是因此先使用i的值,在i的值上加+1後再取其相反數-i,並賦給j。


2、+++,---等計算機是自左至右的解析這個運算符的。

i+++j,實際上(i++)+j,而不是i+(++j)。注意若i,j等於1,該表達式的結果是2,理由同1。


3、++、--在printf中的應用


int i =1;

printf(“%d%d%d”,i,++i,i--); printf的輸出是採取棧的方法,分別將i--,++i,i壓棧,再依次出棧。則壓棧時,先取值i =1,壓棧後底部元素值爲1,再進行減1操作,此時i值爲0,之後,進行+1操作再壓棧,則第二個元素值爲1,最後一個元素值就爲1。即最後輸出爲1 1 1。


發佈了17 篇原創文章 · 獲贊 1 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章