天天看點

[C++ 面試基礎知識總結]表達式和函數[C++ 面試基礎知識總結]表達式和語句

參考書籍:《c++ primer》

<a href="#c-%e9%9d%a2%e8%af%95%e5%9f%ba%e7%a1%80%e7%9f%a5%e8%af%86%e6%80%bb%e7%bb%93%e8%a1%a8%e8%be%be%e5%bc%8f%e5%92%8c%e8%af%ad%e5%8f%a5">c 面試基礎知識總結表達式和語句</a>

<a href="#%e7%9b%ae%e5%bd%95">目錄</a>

<a href="#%e8%bf%90%e7%ae%97%e7%ac%a6%e4%bc%98%e5%85%88%e7%ba%a7">運算符優先級</a>

<a href="#%e7%ae%97%e6%95%b0%e8%bf%90%e7%ae%97%e7%ac%a6">算數運算符</a>

<a href="#%e8%bf%90%e7%ae%97%e5%af%b9%e8%b1%a1%e8%bd%ac%e6%8d%a2">運算對象轉換</a>

<a href="#%e5%95%86%e5%92%8c%e4%bd%99%e6%95%b0">商和餘數</a>

<a href="#%e9%80%bb%e8%be%91%e8%bf%90%e7%ae%97%e7%ac%a6">邏輯運算符</a>

<a href="#%e5%bc%ba%e5%88%b6%e8%bd%ac%e6%8d%a2%e7%b1%bb%e5%9e%8b">強制轉換類型</a>

<a href="#%e6%95%b0%e7%bb%84%e5%bd%a2%e5%8f%82%e5%92%8c%e8%bf%94%e5%9b%9e">數組形參和傳回</a>

<a href="#%e4%b8%8d%e8%83%bd%e8%bf%94%e5%9b%9e%e5%b1%80%e9%83%a8%e5%87%bd%e6%95%b0%e7%9a%84%e6%8c%87%e9%92%88%e5%92%8c%e5%bc%95%e7%94%a8">不能傳回局部函數的指針和引用</a>

<a href="#%e9%87%8d%e8%bd%bd%e5%87%bd%e6%95%b0">重載函數</a>

<a href="#%e9%a2%84%e5%a4%84%e7%90%86%e5%99%a8%e5%8f%98%e9%87%8f">預處理器變量</a>

<a href="#%e5%87%bd%e6%95%b0%e6%8c%87%e9%92%88">函數指針</a>

[C++ 面試基礎知識總結]表達式和函數[C++ 面試基礎知識總結]表達式和語句
[C++ 面試基礎知識總結]表達式和函數[C++ 面試基礎知識總結]表達式和語句

小整數類型(bool,char,short)進行運算時通常會提升成較大的整數類型int。

最終得到b2值為true,原因在于bool值不能直接進行算數運算,需要轉化成int,-b的結果是-1,不等于0,是以b2的值為真。

c++11新标準則規定商一律向0取整,是以-(m)/n和m/(-n)都等于-(m/n),m%(-n)等于m%n,(-m)%n等價于-(m%n)。

&amp;&amp;和||都是短路求值,僅當左側運算對象無法确定表示結果時才會計算右側運算對象。

輸出結果為1,因為執行++i == 1後,已經可以判定整個表達式為真了,不用再去計算右側運算對象了,++i == 0沒有執行,是以隻對i進行了一次遞增操作。

<code>static_cast</code>可以進行不包含底層const的類型轉換,<code>const_cast</code> 隻能改變運算對象的底層const。

數組是無法拷貝的,是以我們為函數傳遞一個數組時,實際上傳遞的是指向數組首元素的指針。函數也不能傳回數組,隻能傳回數組的指針或引用。

局部對象在函數完成後,它所占的的存儲空間也随之被釋放掉,是以,函數終止意味着局部變量的指針或引用将指向不再有效的記憶體區域。

兩個傳回都是錯誤的,試圖傳回局部變量或局部臨時值的引用。

重載函數名字和傳回類型相同,但形參清單不同。頂層const不影響傳入函數的對象,而底層const會。

如果在内層作用域中聲明名字,将會隐藏外層作用域的同名實體。在不同的作用域無法重載函數名。

确定某次調用該選用哪個重載函數時會進行函數比對,如果有且僅有一個函數比對情況優于其它所有函數,則比對成功,否則會因調用二義性而失敗。

比對優先級:

1.精确比對:類型相同,數組類型或函數類型轉化成對應的指針,頂層const

2.轉換const

3.類型提升

4.算數類型轉換或指針轉換

5.類類型轉換

預處理定義的5個用于程式調試很有用的名字。

函數指針指向的是函數,它的類型由傳回類型和形參共同決定。

繼續閱讀