C 中 i 與 i的區別

2021-10-01 15:08:38 字數 1247 閱讀 8641

i++++i這兩個都可以整體看作是對變數i做的運算,只不過運算與返回的次序不同。沒懂不要緊看下面的詳解。

以下有幾個示例:

vectornums = ;

int i = 0;

cout << nums[i++] << endl; // output: 3

cout << nums[++i] << endl;// output: 5

cout << i << endl;// output: 2

int j = i++;

cout << j << endl;// output: 2

cout << i << endl;// output: 3

上述例子由概念不難理解。重點講下以下幾個例子:

// 接著上面的程式,此時 i=3.

if (i == ++i) // output: (i == ++i) = true

cout << i << endl;// output: 8

// 同理有以下:

if (i++ == i++) // output: (i++ == i++) = true

cout << i << endl;// output: 5

if (++i == ++i) // output: (i++ == ++i) = true

cout << i << endl;// output: 7

咋一看,感覺很奇怪。如果運用以上的說法,感覺(i++ == i++) = true會說不通,所以引入第二種理解方式,那就是把這些操作都當成運算,比如:i++, ++i, ==, arr, fun(),既然有運算就會有優先順序,他們的優先順序是這樣排列的:

所以==優先順序是遠遠低於i++,++i的,所以i++ == i++就可以理解為(i++)==(i++)

另外建議沒有特殊要求的話盡量用++i來自增,不容易出bug。

java中i 與 i的區別

直接給大家看 就明白了。package cong.test i與i 的區別 author cong public class jiajia system.out.println int h 0 while h 5 執行出來的結果是 區別在於你是否要用 i或i 這一時刻的值進行操作。其實你可以想象這時...

Java中i 與 i的區別

表示式和變數的區別 當變數少時容易混淆 表示式是指乙個式子整體的結果,例如賦值號 的右邊,賦值時會取賦值號右側式子整體的結果 變數,記憶體中的一塊區域 空間 此區域有變數名來對其定位,並且必須有資料型別來決定此空間的大小和其中能儲存什麼資料,變數必須先宣告,後使用,其中的值可以在其範圍內變化.i 和...

i 與 i的區別

public class test static int x,y public static void main string args public static void mymethod 選項 compiletime error prints 1 prints 2 prints 3 print...