++y是先將y的值加1,表達式的值為加1後的y的值
y++是表達式的值為原來的y值,然後再將y的值加1
兩個都能將y的值加1,主要區別在於表達式的值不同
例如,y=1
(1)x=++y,則y=2,x=2
(2)x=y++,則y=2,x=1
y++是先加1再賦值 就是説這條語句執行完後y=y+1
y++ 是先賦值再加1
一、運算過程不同
1、++y:運算過程為y首先進行自加運算,之後再執行y表達式。
2、y++:運算過程為先執行y表達式,之後進行自加運算。
二、內存過程不同
1、++y:內存中寄存器先自增1,之後執行y。
2、y++:內存中先執行y,之後寄存器增加1。
擴展資料
自增自減運算符存在於C/C++/C#/Java等高級語言中,它的作用是在運算結束前(前置自增自減運算符)或後(後置自增自減運算符)將變量的值加(或減)一。
相較於這些語言中的+=和-=運算符,自增運算符更加簡潔,且可以控制效果作用於運算之前還是之後,具有很大的便利性。
自增運算符 ++ 使操作數的值加1,其操作數必須為可變左值(可簡單地理解為變量)。
自減運算符--與之類似,只不過是變加為減而已。
在同一條語句中,被操作的數出現多次是可以通過編譯的,但是其在C++ Standard等語言標準中被定義為"Undefined behavior"(不確定的行為),即不同的編譯器或編譯器版本所編譯得到的機器碼可能不盡相同。
不推薦在同一條語句中使被操作的數出現多次,這不僅僅將導致程序的含義難以理解,可讀性大幅降低,同時可能導致不同的編譯器或編譯器版本得到不同的結果。