C與C++

01 概述

    能夠簡單理解爲C++是C的超集(固然,也有C的部分特性是C++不支持的),C語言較爲底層,在嵌入式、操做系統等領域使用,C++則是面向對象的編程語言,引入了classes、templates、exceptions 等不少新特性,兩者應用領域不一樣,不存在孰優孰劣。編程

    C語言知識圖譜:數組

    https://en.cppreference.com/w/c/language編程語言

 

    C++語言知識圖譜:函數

    https://en.cppreference.com/w/cpp/languagespa

 

    除了上述圖譜顯示的諸多不一樣之處,下面介紹平時經常使用可是容易忽略的一些小區別:操作系統

02 數據類型

    C語言中基本數據類型:指針

 

    C/C++中的結構體struct:對象

    C語言struct僅僅是對數據類型的封裝,不能封裝函數指針,C++能夠。blog

    封裝性:C語言struct默認是public訪問,不具有保護權限,C++中默認是pricate。內存

   C++新增bool類型變量:

 

    在數據類型方面,C語言的缺點:

    一、C風格字符串(C語言沒有字符串類型,使用\0做爲結束符的字符數組表示字符串):容易致使程序崩潰或執行惡意代碼(很容易致使越界讀寫非法內存,若是寫內存無效,則致使崩潰,若是非法讀是有效的,則會出現不可預料的後果,若是非法寫有效,則會植入惡意代碼)

    二、動態內存管理:容易致使內存溢出,程序和系統僵死

    三、C語言語法限制不嚴格,各類類型能夠強制轉換

03 初始化方法

    C語言提供的初始化方法:

    intx =1024;

    C++提供兩種初始化方法:

    一、複製初始化intx =1024;

    二、直接初始化intx(1024);

04 隨用隨定義

    C 語言:全部變量定義必須位於函數體的最前面

 

    C++:全部變量隨用隨定義

 

05 輸入輸出

     C語言I/O方式:

 

    C++語言I/O方式:

 

    C++這種輸入輸出方式的好處:

   一、不用關注佔位符

    二、不用關注數據類型

    三、不易出現問題

06 namespace

     C++存在命令空間,方便變量命名:

相關文章
相關標籤/搜索