1樓:匿名使用者
i++效能會比++i要低。
因為i++操作過程中需要定義一個臨時變數,對其進行復制操作,然後同樣還要對原值進行自增操作,肯定效能會低。
而且你可以去看一些vc類的++(int)過載項:
_myt operator++(int)
在operator++(int)中一般都是去呼叫++*this;前置++運算來進行自增的,所以怎麼著都是前置的效能比後置的要高一些,當然幾乎沒差。
2樓:謎一樣的人
第一,a = ++i;這條語句的意思是 i=i+1;之後a=i
第二,a = i++;這條語句的意思是 a=i; 之後i=i+1;
第三,單獨一個i++ ,這個和單獨一個++i 效果一樣,都是i=i+1;沒有效能好壞之分
3樓:匿名使用者
前置++i 消耗少一些,只需加1後返回加1的結果就行了
後置的話要先儲存原來的值,因為要返回沒有加1之前的值作為操作結果
對於複雜的迭代器型別,後置可能會花費很大代價
4樓:雨落無聲無痕
++i 效率高一些,因為 i++ 有物件構成,需要呼叫建構函式和解構函式。
這是一道經典面試題,注意是問在c++中,不是c語言中!!!
5樓:
單獨使用,效果都是一樣的,沒啥區別~~
6樓:匿名使用者
這是兩個運算子過載的問題,相比較而言 i++更復雜。
7樓:沒有響應
都一樣....
你還不如直接寫 i=i+1 ......
c++中i++與 ++i區別是什麼?
8樓:盧沈麴醉冬
簡單的來說,++i
和i++,在單獨使用時,就是
i=i+1。而a
=++i,相當於
i=i+1;a=
i;而a=
i++,相當於a=
i;i=i+1;
如果實在搞不明白++
--怎麼回事,那也不是什麼事。
因為a=++i完全可以寫成
i++;
a=i。
a=i++完全可以寫成
a=i;
i++。
9樓:
i++ 是字尾運算,就是 先取出 i 的值,i再 +1++i 是字首運算,就是 i先+1,再取i 的值i = 1;
j = ++i;//j = 2, i = 2j = i++;//j = 1, i = 2對於 其他自定義資料型別 字首++ 比字尾++ 效率要高
10樓:千里牛馬
++i;
i++;
如果這麼寫的話意思就一樣了,
若在語句中用就不一樣了,如
int a=0;
a = i++;
則表示:a等於未增加前i的值,
而a = ++i則表示a等於增加1後i的值
11樓:
運算方式不同,前字尾
c++ 中 i++和++i的區別?? 30
12樓:匿名使用者
我感覺是你放輸出位置的問題
13樓:軒洋川
你要了解一點,賦值語句的話,是先計算出等號右邊的表示式的值,然後再賦值給等號左邊的變數。f[i++] = a[i]就相當於
int _tmp = a[i];
i++;
f[i] = _tmp;
可以按照上式這麼理解,但是這種寫法不正確,只能說編譯器內部差不多就是這麼解釋整個語句的。同理f[i] = a[i++]也就是先獲取a[i]也就是a[1]的值,然後i++得到i=2,再把a[1]的值賦值給f[2]。
14樓:匿名使用者
按優先順序從高到低的順序列出了所有的運算子及其結合性:
運算子優先順序
運算子 結合性
() -> 自左至右
! ~ ++ -- -(型別轉換) * & 自右至左
sizeof * / % 自左至右
+ - 自左至右
<< >> 自左至右
<< = >>= 自左至右
== != 自左至右
& 自左至右
^ 自左至右
| 自左至右
&& 自左至右
|| 自左至右
?: 自右至左
= += -= 自右至左
, 自左至右
所以 是 自右到左 f[i]=a[i++]; a[1] -> i = 1+1 -> f[i] = f[2] -> f[2] = a[1]
15樓:匿名使用者
你自己搞錯了吧,執行一下下面的**,看結果就知道了int f[10],a[10];
int i;
for (i=0; i < 10; i++)f[i]=a[i]=i;
i=1;
f[i++] = a[i];
i = 5;
f[i] = a[i++];
cout< return 0; 我這裡輸出結果為1 5 6 c++中++i與i++的區別是什麼 16樓:匿名使用者 剛才看到一個問題,copy也是問這個差不多的問題,最佳答案居然是 int i=0;i+=; 居然是1我暈,明顯語法錯誤,可是我沒回答上他就關掉了,現在轉到你這來。 一、i+=s;為自身加上等號後面的的值,例如 int i=5; i+=10;//此時i=15 ,相當於i=i+10; 二、如果你想要使用自增1或自減1,則使用方式是i++;或i--;( 或++i和--i;) 例如int i=5; i++;//此時i=6 三、 i++;和++i的區別是,如果單獨執和沒明區別,如果與其它操作符一起執行,則有影響計算的前後次序,例如 例1: int i=1; int b=++i; //此時會先將i自增1等於2,然後賦值給b,所以b=2 例2: int i=1; int b=i++; //此時會先將i的值賦給b,然後i自增1,所以b的值是i沒自增1的值,所以b=1 17樓:陸美富 ++i變數i和表示式同時增1 i++變數i增1,表示式為原值 18樓:匿名使用者 看到本書,說除了別人說過的區別外; i++需要編譯器多分配一個副本作為變數 19樓:倒黴熊 如果是單獨的語句 i++; ++i; 是沒有什麼區別的,執行後都是增1. 但下面是有區別的 a = i++; b = ++i; 前者,專 相當於 a = i;i++; 後者相當於 ++i; b=i; 也就屬是在這時候,i++是先使用i的值,再改變i的值。而++i是先改變i的值,然後再使用改變後的i值。 20樓:天尊的光輝 ++i是一個表示式,表示式的值是i+1,表示式過去後i的值也成了i+1 i++也是一個表示式,表示式的值是i,表示式過去後i的值成了i+1 21樓: i++ 是字尾運 copy算,就是 先取出 i 的值,i再 +1++i 是字首運算,就是 i先+1,再取i 的值i = 1; j = ++i;//j = 2, i = 2j = i++;//j = 1, i = 2對於 其他自定義資料型別 字首++ 比字尾++ 效率要高 22樓: 主要差異在於返回值,相同點在於對i進行自加: ++i返回的是i自加後的 版內容,i++返回的是i未自加的權內容。 舉個例子: int i = 10; a = i++; vs int i = 10; b = ++i; 結果分別是 i = 11, a = 10和 i = 11, b = 11。 將i++和++i彙編結果,若沒有使用其返回值賦值特性,結果是一樣的,有返回值差異在於彙編**執行先後(先自加還是先賦值)區別。 另外,關於for(i = 0; i < n; i++)與for(i = 0; i < n; ++i) 有差異的說法是扯淡的。現在我們看到的編譯器,基本都會彙編成相同的**(好像有基本經典教程說有差異,那只是針對古老的編譯器)。 c++中++i與i++的區別是什麼? 23樓: 主要差異在於返回值,相同點在於對i進行自加: ++i返回的是i自加後的內容,i++返回的是i未自加的內容。 舉個例子: int i = 10; a = i++; vs int i = 10; b = ++i; 結果分別是 i = 11, a = 10和 i = 11, b = 11。 將i++和++i彙編結果,若沒有使用其返回值賦值特性,結果是一樣的,有返回值差異在於彙編**執行先後(先自加還是先賦值)區別。 另外,關於for(i = 0; i < n; i++)與for(i = 0; i < n; ++i) 有差異的說法是扯淡的。現在我們看到的編譯器,基本都會彙編成相同的**(好像有基本經典教程說有差異,那只是針對古老的編譯器)。 在c++語言中,i++與++i有什麼區別 24樓:匿名使用者 先看一段**: #include int main() ++和++i的區別就是: i++ :先引用,後增加 ++i :先增加,後引用 換句話就是: i++ : 先在i所在的表示式中使用i的當前值,再讓i加1++i : 先讓i加1,再在i所在的表示式中使用i的新值取決於++和i的相對位置: ++在i前面,i先加1,然後在表示式中用i的值;++在i後面,先在表示式中用i的值,然後i再加1。 25樓: 兩者都會將i自增1,區別是返回值。 i++返回i自增之前的值,++i返回i自增之後的值。 比如,i=1 a=i++,則a=1,i=2,a為i自增前的值a=++i,則a=2,i=2,a為i自增後的值 c++中for語句中i++和++i的區別? 26樓:**的翅膀 i++是先取i的值,i再+1,++i是i先+1,然後再取值for語句中的n++和++n其實結果是一樣的,以下情況列印結果都一樣 int i=5,j=5; i++; printf("%d\n", i); i=5; ++i; printf("%d\n", i); j--; printf("%d\n", j); j=5; --j; printf("%d\n", j); 列印結果:66 44以下情況列印結果不一樣: int i=6,j=4; int w=i++;printf("%d\n",w); int x=++i;printf("%d\n",x); int y=j--;printf("%d\n",y); int z=--j;printf("%d\n",z); 列印結果:68 42望採納,還有不懂的地方可以隨時提問 高頓教育很高興回答您 雖然acca和cma同為財會方面的證書,但是相對來說還是比較好選擇的。如果是大學生的話建議選擇acca,因為acca報考門檻比較低,課程也相對較多,更適合大學生利用空餘時間來學習 cma課程較少,相對簡單一些,更針對工作人士,所以畢業正在工作想提升自己的話選擇cma更合適一些。... 我的個人建議拳擊比較好。或許拳擊拿俄式美式來分並不準確,但在那個年代,我國拳擊肯定是跟蘇修老大哥學的,說是俄式沒毛病。我所學的拳擊,注重每一拳的發力。除了刺拳外,其它直勾擺振拳都非常重,足以把人下巴打脫臼,一拳直接打暈過去。瞄準的不是下巴就是胸腹橫膈膜,感覺那個年代的拳擊真是實戰流,雖然也有迎擊拳和... 粉刺 痤瘡 按照皮損的表現可分為以下型別 1 丘疹型 皮損以丘疹為主,或伴有少許小膿皰,多為起初輕症的病人 2 膿皰型 皮損以小膿皰和紅色炎性丘疹為主,伴有米粒或黃豆大的小結節 3 結節型 皮損以花生至指頭大的紅色或紅色結節為主,伴有疼痛或小膿皰 4 囊腫型 皮損大小不一的皮脂腺囊腫為主,伴有結節,...CMA和ACCA,兩者比較,真是不知道選哪個好啊
散打和拳擊這兩者之間學哪個比較好
青春痘是不是和痤瘡是同概念?如果不是,兩者該如何治療