請問如何用通俗且深刻的記憶方法來區分i 和 i呢?

時間 2021-05-30 04:24:26

1樓:Awawawa

方法:

怎麼看?從左往右看

i++中i在前++在後,所以先返回i再++。

++i中++在前i在後,所以先++再返回i。

另外提一下,++i效率比i++高一點點。

2樓:chaoshi

i++加號在後,英文叫post-increment,意思是你先「用」再加(1)

++i加號在前,英文加pre-increment,意思是先加(1)再「用」

「用」指的是使用這個表示式的返回值。

在很多情況下,你是不需要使用這個返回值的,比如說在

1. for (i = 1; i < 10; ++i)

這樣的for loop裡面,或者單純的

2. i++;

這樣的語句。 如果不需要使用返回值,則i++和++i對程式本身基本沒有影響,可以混用。(唯一的小區別是i++需要創造乙個臨時變數儲存加1之前的舊值以便返回這個舊值, 在有些編譯器裡面可能會稍微慢那麼一點點點)。

在少數情況下,你需要使用這個返回的值,比如說在

1. int i = 10; int a = i++;

或者

2. int i = 10; int a = ++i;

或者

3. char a = arr[pos++];

這樣的語句。這個時候就不能混用了,你要想清楚你需要的返回值到底是加之前的還是加之後的。比如說前面的兩個語句a的值分別是10 (先用再加) 和 11(先加再用),後面那個語句你需要記錄下當前位置的字元(),跳向下乙個字元()。

3樓:

我感覺自己初學的時候沒專門記過這個。硬要記的話,可以這樣:++在左邊的返回左值,++在右邊的返回右值……

(注:在C++裡成立,C裡不成立)

4樓:彈指一揮間

按從左到右順序,因為最終是要用i的,++i就是先+1在用i,i++就是先用i再+1,先看到啥就執行什麼操作。當然如果只是像for迴圈中的單獨用到i++或者++i,結果本身無差別。但是像某個陣列arr[++i]和arr[i++]結果就不一樣了

5樓:d41d8c

++i 是 i = i + 1 。

i++ 是 std::exchange(i, i + 1) 。

改寫之後看起來好懂的那種更常用。

6樓:Mathm

i++ → temp=i,i=i+1 ,return temp ;

++i → i=i+1,return i;

operator++() \\ 對應++ioperator++(int)\\ 對應 i++

7樓:

一般情況下,能記方法的情況不記結果。

如果你的工作中經常要用到自增,且在兩種模式中需頻繁切換,用不了幾天就記住了。

如果你工作中不常用自增,那你用到的時候cout一下很麻煩麼?幹嘛要記住呢?

8樓:裴浩

去學 Golang,沒有 ++i 只有 i++。

或者去學 Python,沒有 ++ 這種運算。

學 Scala 也行,有 ++,然而,對 Int 是不能用 ++ 的,因為 Int 沒這個方法。

如何用通俗的語言解釋豪斯多夫維數

通常的維度是整數,於是有人 專指數學家 就想,為啥不能有小數的維度呢?如果有小數維,應該如何定義。由於通常的維數有很多種定義,比如通常用座標架的維度,比如座標 x,y 有2個座標,這種定義妥妥只能是整數。那換其它定義呢?還真找到這樣一種定義,看測度 長度,面積,體積.和縮放係數之間的關係。比如,線段...

如何用通俗的案例解釋 借殼上市 ?

彬力十足 首先要理清乙個概念,借殼上市到底是什麼。歸納起來就兩點 一是上市公司控制權發生過變更,二是自控制權發生變更36個月內向收購人及其關聯方購買資產滿足資產總額 淨資產額 營業收入及發行股份數超過控制權變更前上市公司相應比例的100 即構成重組上市 俗稱借殼上市 什麼是借殼上市,業績承諾是什麼?...

請問如何用數學方法證明K means是EM演算法的特例?

霖霖霖丶 寫點個人的想法。總的來說,GMM與kmeans的關聯在於 在權重一致 協方差矩陣為單位陣 硬分配的情況下,kmeans是GMM的乙個特例 GMM通過soft EM推導,kmeans可通過hard EM推導 由於協方差為單位矩陣,故kmeans聚類的形狀是球形的,而GMM是橢球型的。 趙易明...