1、當變量i的數據類型是c++語言默認提供的類型的話,他們的效率是一樣的。
從其匯編執行的條數是一樣的,所以其執行效率是一樣的(有興趣可以用gdb查看匯編代碼)
2、我們自定的數據類型,++i效率高於i++,通過運算符重載來給大家說明這一點。
Operator Operator::operator++()
{
++value; //內部成員變量
return *this;
}
Operator Operator::operator++(int)
{
Operator temp;
temp.value=value;
value++;
return temp;
}
後++必須要有一個臨時對象才可以完成,產生臨時對象,需要發生一系列的拷貝動作,效率自然比直接引用對象低很多。
一般來說,第一種情況快;因為只有一個for,只需要循環一次;第二種情況需要循環3次(有3個for)
循環體 A ==> break; B==>break; C==>break;且N>=3時最快
====
面試這樣的題目的目的嘛,也許是腦筋急轉彎?
C語言語法 非常靈活
比如 for 循環 就可以有多種寫法
for (i = 0; i < 10; i++)
for (i = 0; i < 10;)
for (;;;)
等等
可以在不同情況下采用
執行效率高單就速度效率來說
c語言效率比大多數高級語言效率要高
高質量的c代碼編譯後生成的匯編代碼比人工寫的
高質量匯編代碼效率相差不超過20%
所以 c 語言適合編寫大型系統 比如操作系統等等