關於自增 的注意事項

2021-10-04 08:00:49 字數 1257 閱讀 4758

自增:

(1)情況一:自增運算單獨乙個語句

i++;

或++i;

這種情況無論自增在前還是在後,沒有任何區別,都是i自增1;

(2)情況二:自增運算只是整個語句的一部分

例如:除了自增還有列印:

system.out.println(i++);

system.out.println(++i);

或除了自增還有賦值等運算

i = i++;

i = ++i;

j = i++;

k = i++ * i++;

或除了自增還有判斷等

if(i++ == 1)

if(i++ ==1 && j=true)

這些情況,自增在前還是在後完全不同。

自增在前,先自增後取值

自增在後,先取值後自增

例如:int i = 1;

system.out.println(i++);

(1)先取i的值1放到「運算元棧」中

(2)i再自增,i=2

(3)輸出「運算元棧」中的值"1"

int i = 1;

system.out.println(++i);

(1)i先自增,i=2

(2)再取i的值1放到「運算元棧」中

(3)輸出「運算元棧」中的值"1"

例如:int x = 1;

int y = 1;

if(x++2 & ++y2)

(1)先取x的值1放到「運算元棧」中

(2)再x自增,x=2

(3)把常量值2放到「運算元棧」中

(4)彈出「運算元棧」中的1和2做比較,結果是false,放到運算元棧中

因為&是二元操作符,就是需要左右兩個運算元,所以要把右邊先計算出來,才能計算&。

而且&是非短路與,無論左邊是什麼情況,都要看右邊。

(5)y先自增,y=2

(6)取y的值1放到「運算元棧」中

(7)把常量值2放到「運算元棧」中

(8)彈出「運算元棧」中的2和2做比較,結果是true,放到運算元棧中

(9)彈出「運算元棧」中的false和true做&運算,結果是false,所以if不成立,那麼x=7不執行

int num = 10;

num = num + (++num) + (num++);

system.out.println(num);//32 num= 10+11+11++

一是接收得變數是num 會產生臨時變數接收 二是 num 一直在變化

關於new注意事項

file main.cpp author vicky include include include class user user const char username virtual user void sayhello char username 20 int main void 建立乙個u...

關於Cookie注意事項

細節決定成敗,小細節絆住大腳。1.cookie 儲存時 key不能使用分號 逗號 等 號 以及空格。如 設定key為 aa.aspx?id 1 最後儲存的cookie key結果為aa.aspx?id 系統遇到等號時,後面的字串自動擷取掉了。2.同樣,cookie 儲存時 值不能使用分號 逗號 等 ...

關於xp cmdshell的注意事項

一 mssql2000的master本身沒有擴充套件儲存過程xp cmdshell,所以要建立一下,然後就看直接使用了 sqlcommand.commandtext use master if not exists select from dbo.sysobjects where id object...