1. 程式人生 > >C++知識總結

C++知識總結

1.什麼是C++?

c++是在c語言的基礎上開發的一種面對物件的程式語言,它支援多種程式設計正規化:面對物件程式設計、泛型程式設計和過程化程式設計。 應用十分廣泛,常用於系統,引擎等的開發,另外還支援類、封裝、過載、多型等特性。

2.C和C++的區別

  • C語言是面向過程的語言,是一個結構化的語言,而c++是面向物件的語言
  • c和c++動態管理記憶體的方法不同,c是使用malloc/free函式,而c++除此之外還有new/delete關鍵字。
  • c++中有類,但是c語言中是沒有這個概念的,而struct在C語言和c++中都可以正常使用,struct和類的不同是struct的預設訪問許可權是public的,而類預設的許可權private的。
  • c++是一種強型別語言,比起C語言c++有著非常嚴格的資料型別檢測

3.什麼是引用

  • 引用是物件的另一個名字,在實際程式中,引用主要用作函式的引數來使用。

4.常量與變數有哪些區別?

  • 常量是不可以改變值的量,變數是可以改變值的量。
  • 常量在定義時必須初始化,變數可以在定義時不初始化。
  • 常量不可以定址,它的地址不允許賦給非常量指標,變數可以定址。
  • 常量有相對較高的編譯效率。

5.自增自減前操作與後操作的區別(即i++與++i的區別)

  • 前自增自減操作的優先順序大於賦值運算子(=),而後自增自減的優先順序小於賦值運算子
  • 前自增自減運算是先增減在進行運算,後自增自減是先參與運算再進行自增自減。
    例如:
a= ++i; //i先自增1,然後再賦給變數a

b = j++;//將j先賦給變數b,然後j再自增1

6.變數有哪幾種儲存型別?

  • 在c++中,變數的儲存型別有4種。分別是:
  • 自動型別變數(auto) 自動型別只能是區域性型別的變數,屬於動態儲存型別
  • 靜態型別變數(static) 在程式執行中始終時候佔用一個尋儲存空間。使用區域性靜態變數是為了在下次呼叫該函式時,能使用上次呼叫後得到的該變數的值。
  • 暫存器型別變數(register) 屬於動態儲存型別,編譯器不為該型別變數分配記憶體空間,而是直接使用CPU的暫存器。主要用於控制迴圈次數等不需要長期儲存值的變數。
  • 外部型別變數(extern) 必須是全域性變數,在c++中,有兩種情況需要使用。一種是在同一源程式檔案中,黨當在全域性的定義之前使用該變數時,在使用前要對該變數進行外部型別變數宣告。另一種是當程式有多個檔案組成時,若在一個原始檔中要引用在另一個原始檔中定義的全域性變數,則在引用前需要對所引用的變數進行外部宣告。

7.while迴圈與do-while迴圈的區別?

  • while迴圈與do-while迴圈的主要區別在於,如果迴圈條件語句為false,while語句不會執行迴圈,而do-while迴圈都會先執行一次迴圈在進行條件判斷。

8.什麼是遞迴?

  • 遞迴作為一種演算法在程式設計語言中廣泛使用,是指函式/過程/子程式在執行的過程中直接或間接呼叫自身而產生的的重入現象。一個過程或函式直接或間接呼叫自己本身,這種過程或函式叫遞迴過程或遞迴函式。

9.什麼是巨集定義?

  • 巨集定義是c++的預處理命令之一,它是一個替換操作,不做計算和表示式求解,不佔用記憶體和編譯時間。

10.include的用法?

  • include有兩種使用方式,#include<>和#include" “,其中#include<>是使用標準標頭檔案,#include” "是使用自定義的標頭檔案。