<kbd id="daqct"></kbd>

  • <nav id="daqct"></nav>
    <wbr id="daqct"><pre id="daqct"></pre></wbr>
    <wbr id="daqct"></wbr>
    <form id="daqct"><th id="daqct"></th></form>
    更多課程 選擇中心

    C/C++培訓
    達內IT學院

    400-111-8989

    C語言與C++的基本區別和優缺點分析

    • 發布:C++培訓
    • 來源:學習筆記
    • 時間:2017-04-07 16:16

    C語言的優點:
    1、出色的移植行2、訪問硬件3、運行效率高
    注:所有的操作系統的內核都是用C語言實現的
    C語言的缺點:
    1、擴展性差2、復用性差3、維護性差
    面向對象:C++的優點:
    1、擴展性好2、復用性好3、維護性好
    C語言+面向對象方法論:1、objectivec2、c++
    C++支持的編程規范:過程式、數據抽象、基于對象、面向對象式、函數式、泛型形式、模板元形式、值語義與對象語義
    值語義可以拷貝與賦值,對象語義不可以進行拷貝和賦值
    聲明定義:
    C++中強調語言的“實用性”,所有的變量都可以在需要的使用時再定義;
    C語言中的都必須再作用域開始的位置定義;
    Register
    被register修飾的變量叫做寄存器變量
    使用寄存器變量的注意點:
    待聲明的寄存器變量類型是CPU寄存器所能接受的類型,意味著寄存器變量是單個變量,變量長度應該小于寄存器長度。
    不能對寄存器變量使用取地址符&,因為該變量是沒有內存地址的;
    盡量在大量頻繁操作的時候使用寄存器變量,并且聲明的寄存器變量個數盡可能的少。
    Register關鍵字請求“編譯器”將局部變量存儲于寄存器中
    C語言中是無法取得register變量的地址;
    C++依然支持register關鍵字
    C++編譯器有自己的優化方式,不使用register也可能做優化;
    C++中可以取得register變量的地址;
    C++編輯器發現程序中需要取register變量的地址時,register對變量的聲明變得無效;
    Const
    C++編輯器對const常量的處理
    當碰見常量聲明時在符號表中放入常量;
    編譯過程中若發現使用常量則直接以符號表中的值替換;
    編譯過程中若發現對const使用了extern或者&操作符時,則給對應的常量分配存儲空間
    注意:C++編譯器雖然可能為const常量分配空間,但是不會使用其存儲空間中的值;
    動態內存分配
    C++中的動態內存分配
    C++中通過new關鍵字來進行動態內存申請
    C++中的動態內存申請是基于類型進行的
    Delete關鍵字是用于內存釋放的
    變量申請:數組申請:
    Type*pointer=newType;Type*pointer=newType[N];
    //…….//…….
    Deletepointer;delete[]pointer;
    New關鍵字與malloc函數的區別
    New關鍵字是C++的一部分;malloc是由C庫提供的函數
    New以具體類型為單位進行內存分配,malloc只能以字節為單位進行內存分配
    New在申請單個類型變量時可進行初始化,malloc不具備內存初始化功能
    引用是給一個變量起別名
    定義引用的一般格式
    類型&引用名=變量名;
    例如:inta=1;
    int&b=a;//b是a的別名,因此a和b是同一單元;
    注:定義引用時一定要初始化,指明該引用變量是誰的別名;
    函數傳參:按引用傳遞
    引用傳遞方式是在函數定義時在形參前面加上引用取地址符&;
    例如:voidswap(int&a,int&b);
    按值傳遞方式容易理解,但形參值的改變不能改變實參的值
    地址傳遞的方式通過形參的改變使相應的實參改變,但程序容易產生錯誤,而且難以閱讀;
    引用作為參數對形參的任何操作都可以改變實參的相應數據,又使函數調用顯得方便,自然。
    引用作為返回值
    引用的另一個作用就是用于返回引用的函數;
    函數返回引用的一個主要目的就是可以將函數放在賦值運算符左邊;
    注:不能返回對局部變量的引用
    引用訪問一個變量是直接訪問,指針訪問一個變量是間接訪問;
    引用是一個變量的別名,本身不單獨分配自己的內存空間,而指針有自己的內存空間;
    引用一經初始化,就不能再引用其他變量,而指針可以
    注:盡可能的使用引用,不得已時使用指針。
    內聯函數
    Inlineintmax(inta,intb)
    {
    Returna>b?a:b;
    }
    #definemax(a,b)(a)>(b)?(a):(b)
    內聯函數調用時,要求實參和形參的類型一致,另外內聯函數會對實參的表達式進行求值,然后傳遞給形參;而宏替換只是用實參簡單的進行替換形參;
    內聯函數是在函數編譯的時候,在調用的地方將代碼展開,而宏則是在預處理時進行替換;
    在C++中建議使用內聯函數來替換帶參數的宏
    函數重載的條件
    函數重載的不同形式:
    形參數量不同
    形參類型不同
    形參順序不同
    形參數量和形參類型的不同
    調用重載函數時,編譯器通過檢查實際參數的個數、類型和順序來確定相應的被調用函數
    *extern“C”實現C和C++混合編程
    #ifdef_cplusplus
    extern“c”
    {
    #endif
    …………
    #ifdef_cplusplus
    }
    #endif

    預約申請免費試聽課

    填寫下面表單即可預約申請免費試聽!怕錢不夠?可就業掙錢后再付學費! 怕學不會?助教全程陪讀,隨時解惑!擔心就業?一地學習,可全國推薦就業!

    上一篇: C++程序員是否該掌握某種匯編語言?
    下一篇:每一個C#開發者必須知道的12件事情

    C語言創建windows窗口實例

    C++回調函數是什么?

    C++ shared_ptr和動態數組

    C語言有哪些關鍵詞,C語言44個關鍵詞大全

    • 掃碼領取資料

      回復關鍵字:視頻資料

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

    • 視頻學習QQ群

      添加QQ群:1143617948

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

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

    選擇城市和中心
    黑龍江省

    吉林省

    河北省

    湖南省

    貴州省

    云南省

    廣西省

    海南省

    欧美三级片,白洁外传,第四色播日韩AV第一页,啪啪免费观看大全av 百度 好搜 搜狗
    <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <文本链> <文本链> <文本链> <文本链> <文本链> <文本链>