++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。