c語言中y++是啥
- 心理
- 關注:3.26W次
++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"(不確定的行為),即不同的編譯器或編譯器版本所編譯得到的機器碼可能不盡相同。
不推薦在同一條語句中使被操作的數出現多次,這不僅僅將導致程式的含義難以理解,可讀性大幅降低,同時可能導致不同的編譯器或編譯器版本得到不同的結果。
標籤:
語言
- 文章版權屬於文章作者所有,轉載請註明 https://rmnxw.com/zh-tw/lvse/xinli/q3jorx.html