a 與 a的區別

2021-08-21 23:43:25 字數 1006 閱讀 3397

通常說,a++是先取值後運算,++a是先運算後取值。實際上這裡涉及好幾個基本概念! 先確定你清楚「運算子」、「表示式」和「語句」的概念:

++ 是乙個「自增運算子」,自增運算子有兩種形式:字首自增(++a)和字尾自增(a++)。

運算子和運算元合起來就是乙個表示式(a++、++a都是表示式,a就是運算元)。注意:每乙個表示式本身都有值(和其型別),有的表示式還有「***」。比如自增表示式的***就是使其運算元自增1。那麼自增運算表示式的值是什麼呢? a++ 的值就是 a 的值,而 ++a 的值等於 a+1。

表示式後面加上乙個分號才是乙個完整的「語句」。

還有乙個關鍵內容:前面說使運算元自增1是自增表示式的***,那麼這個***什麼時候發生呢? 準確地說是在「序列點」後保證會發生。 序列點這個概念比較複雜,對於例題中這個簡單的情況,你只需要知道:在本語句結束後,這些***肯定發生了。

下面講解下3-3的例題:

int a = 100; 最開始時a是100。

列印 a++; 這個printf會列印a++的值,注意是a++表示式的值,看我前面的講解,a++的值就是a的值,也就是100。 別忘了這語句結束後a的值就會自增1(也就是***發生了)。

列印 ++a; 目前a的值為101。現在要列印++a表示式的值,++a的值就等於a+1,所以會列印出102。 此語句後a=101+1=102。

列印 –a; 這次要列印–a表示式的值,同自增乙個道理,–a的值等於a-1,所以會列印出101。 此語句後a=102-1=101。

列印 a–; a–表示式的值就是a的值,所以列印出101。 此語句後a=101-1=100。

列印 a+1; 這表示式與自增無關,只是列印a+1的值,就是101。 對a本身的值沒有影響(加法表示式沒有***)。

列印 a; 這時a的值當然還是100了。

原**:

int a=0

;while(true)

system.out.println(a);//a值一直保持這0

與 的區別? 與 的區別?

相同點 和 都是表示與的邏輯運算子,其運算結果一致 不同點 邏輯與 當兩邊的表示式都為true的時候,整個運算結果才為true,否則為false。短路與 當第乙個表示式的值為false的時候,則不再計算第二個表示式 注意 還可以做位運算子,當表示式不是boolean型別的時候 例項1 public ...

this 與this的區別

this 與this的區別 相信很多剛接觸jquery的人,很多都會對 this 和this的區別模糊不清,那麼這兩者有什麼區別呢?首先來看看jquery中的 這個符號,實際上這個符號在jquery中相當於jquery 即 this jquery 也就是說,這樣可以返回乙個jquery物件。那麼,當...

a與 a的區別

首先,來一段 void main int ptr int a 1 printf d,d a 1 ptr 1 列印出來的值為多少呢?這裡主要是考查關於指標加減操作的理解。對指標進行加1操作,得到的是下乙個元素的位址,而不是原有位址值直接加1。所 以 乙個型別為t的指標的移動,以sizeof t 為移動...