<th id="ik4gr"><pre id="ik4gr"></pre></th>
<rp id="ik4gr"></rp>
    <dd id="ik4gr"></dd>

  1. <rp id="ik4gr"><object id="ik4gr"><blockquote id="ik4gr"></blockquote></object></rp>
      <rp id="ik4gr"></rp>
        <button id="ik4gr"><acronym id="ik4gr"></acronym></button>
      1. <rp id="ik4gr"><object id="ik4gr"><input id="ik4gr"></input></object></rp>
        1. 杭州嵌入式培訓
          達內杭州嵌入式培訓中心

          13175137725

          企業面試常出現的10個c/c++面試題

          • 時間:2019-07-03 14:45
          • 發布:轉載
          • 來源:網絡

          本文小編為大家分享的是企業面試常出現的10個c/c++面試題,一起來看看吧。

          1. C中static有什么作用

          (1)隱藏。當我們同時編譯多個文件時,所有未加static前綴的全局變量和函數都具有全局可見性,故使用static在不同的文件中定義同名函數和同名變量,而不必擔心命名沖突。

          (2)static的第二個作用是保持變量內容的持久。存儲在靜態數據區的變量會在程序剛開始運行時就完成初始化,也是唯一的一次初始化。共有兩種變量存儲在靜態存儲區:全局變量和static變量。

          (3)static的第三個作用是默認初始化為0.其實全局變量也具備這一屬性,因為全局變量也存儲在靜態數據區。在靜態數據區,內存中所有的字節默認值都是0×00,某些時候這一特點可以減少程序員的工作量。

          2.C++中const有什么用?

          不要一聽到const就說是常量,這樣給考官一種在和一個外行交談的感覺。應該說const修飾的內容不可改變就行了,定義常量只是一種使用方式而已,還有const數據成員,const參數, const返回值, const成員函數等,被const修飾的東西都受到強制保護,可以預防意外的變動,能提高程序的健壯性。

          3. C與C++各自是如何定義常量的?有什么不同?

          C中是使用宏#define定義, C++使用更好的const來定義。

          區別:

          1)const是有數據類型的常量,而宏常量沒有,編譯器可以對前者進行靜態類型安全檢查,對后者僅是字符替換,沒有類型安全檢查,而且在字符替換時可能會產生意料不到的錯誤(邊際效應)。

          2)有些編譯器可以對const常量進行調試, 不能對宏調試。

          4. 既然C++中有更好的const為什么還要使用宏?

          const無法代替宏作為衛哨來防止文件的重復包含。

          5. C++中引用和指針的區別?

          引用是對象的別名, 操作引用就是操作這個對象, 必須在創建的同時有效得初始化(引用一個有效的對象, 不可為NULL),初始化完畢就再也不可改變, 引用具有指針的效率, 又具有變量使用的方便性和直觀性, 在語言層面上引用和對象的用法一樣,在二進制層面上引用一般都是通過指針來實現的, 只是編譯器幫我們完成了轉換。 之所以使用引用是為了用適當的工具做恰如其分的事,體現了最小特權原則。

          6. 說一說C與C++的內存分配方式?

          1)從靜態存儲區域分配。內存在程序編譯的時候就已經分配好,這塊內存在程序的整個運行期間都存在,如全局變量,static變量。

          2)在棧上創建。在執行函數時,函數內局部變量的存儲單元都可以在棧上創建,函數執行結束時這些存儲單元自動被釋放。棧內存分配運算內置于處理器的指令集中,效率很高,但是分配的內存容量有限。

          3)從堆上分配(動態內存分配)程序在運行的時候用malloc或new申請任意多少的內存,程序員負責在何時用free或delete釋放內存。動態內存的生存期自己決定,使用非常靈活。

          7. new/delete 與 malloc()/free() 的區別?

          malloc() 與 free() 是C語言的標準庫函數, new/delete 是C++的運算符,他們都可以用來申請和釋放內存, malloc()和free()不在編譯器控制權限之內,不能把構造函數和析構函數的任務強加給他們。www.cdtarena.com

          8. #include和#include"a.h" 有什么區別?

          答:對于#include ,編譯器從標準庫路徑開始搜索 a.h對于#include "a.h" ,編譯器從用戶的工作路徑開始搜索 a.h

          9. 在C++ 程序中調用被 C編譯器編譯后的函數,為什么要加 extern "C"?

          C++語言支持函數重載,C語言不支持函數重載。函數被C++編譯后在庫中的名字與C語言的不同。假設某個函數的原型為: void foo(int x, int y);該函數被C編譯器編譯后在庫中的名字為_foo,而C++編譯器則會產生像_foo_int_int之類的名字。C++提供了C連接交換指定符號extern"C"來解決名字匹配問題。

          10. C++中的什么是多態性? 是如何實現的?

          多態性是面向對象程序設計語言繼數據抽象和繼承之后的第三個基本特征。它是在運行時出現的多態性通過派生類和虛函數實現。基類和派生類中使用同樣的函數名,完成不同的操作具體實現相隔離的另一類接口,即把" w h a t"從"h o w"分離開來。多態性提高了代碼的組織性和可讀性,虛函數則根據類型的不同來進行不同的隔離。

          以上就是本文為大家分享的關于c/c++的面試題,希望對大家有所幫助。

          預約申請免費試聽課

          怕錢不夠?就業掙錢后再付學費!    怕學不會?從入學起,達內定制課程!     擔心就業?達內多家實踐企業供你挑選!

          上一篇:收好了:C語言面試基礎算法及代碼
          下一篇:如何在簡歷中揚長避短?干貨

          一文告訴你:如何參加IT培訓拿高薪?

          非科班出身轉行IT難嗎?好就業嗎?

          面試時程序員應該如何解答薪資問題?

          交付前你需要這樣的UI自查

          • 掃碼領取資料

            回復關鍵字:視頻資料

            免費領取 達內課程視頻學習資料

          • 視頻學習QQ群

            添加QQ群:1143617948

            免費領取達內課程視頻學習資料

          Copyright ? 2018 Tedu.cn All Rights Reserved 京ICP備08000853號-56 京公網安備 11010802029508號 達內時代科技集團有限公司 版權所有

          選擇城市和中心
          江西省

          貴州省

          廣西省

          海南省

          香蕉视频在线一级a做爰片免费观看视频 欧美成年性色生活片 百度 好搜 搜狗
          <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <文本链> <文本链> <文本链> <文本链> <文本链> <文本链>