糯米文學吧

位置:首頁 > 計算機 > C語言

C/C++面試常考關鍵字總結

C語言1.36W

C語言對於學習編程的小夥伴來説,是一種必須學習的基礎。下面是小編為大家整理出來的有關於C/C++面試常考關鍵字總結,希望可以幫助到大家!

C/C++面試常考關鍵字總結

ic關鍵字的作用?

1)、static 申明的變量為靜態全局變量,該變量存儲在靜態數據區,當整個程序結束時該變量才會被釋放,只是生命週期延長,作用域不受影響。

2)、static申明的變量定義時如果不初始化默認初始化為0

3)、被static修飾的變量只能作用於本文件內,即使被extern修飾也不行

t,define的區別

1)、const修飾的變量為只讀變量,定義一個const類型的變量時必須完成初始化

2)、define意為宏定義一個常量,給某個命名變量宏定義一個確定的數值,在預編譯期間將會完成一個替換的動作,用宏定義的值替換給變量名。

3)、const也可以修飾函數的參數列表以及函數的返回值,參數返回值被const修飾代表參數和返回值均不能被改變。

4)、const修飾的變量可以通過強制類型轉換轉為非const

5)、const修飾的成員變量只能在構造函數的初始化列表進行初始化。並且不能修改

6)、const修飾成員函數,該成員函數不能修改任何成員變量的值

7)、const修飾對象:該對象中所有的成員都變成只讀,而且該對象的所以成員函數都必須被const修飾。

,malloc/free的區別

(1)new/ malloc/free都是用來動態申請內存空間的 ,兩組必須成對使用。

(2)new/為運算符,malloc/free為庫函數需要頭文件

(3)new/為對象申請釋放內存會調用相應的構造函數和析構函數 malloc/free則不會

(4)new有數據類型的檢查,是類型安全的,malloc無數據類型的檢查返回值為void*

(5)new申請內存空間必須指明要存放的數據類型和要存放對象的數目,malloc只需要指明申請空間的`大小,可以通過顯示地強制類型轉換改變返回值的數據類型

(C++)

auto申明的變量必須初始化,程序會根據初始化的值的數據類型來自動確定該變量的數據類型。

5.指針和引用的區別

(1)指針和引用都是通過地址索引數據的。

(2)指針存放的是變量的地址,引用是變量的別名。

(3)指針也是一個變量需要佔用4個字節(32位機器)的內存空間,引用不需要佔用內存,它只是變量的一個別名。

5.面向對象和麪向過程

面向對象:面向主要是以目標對象為研究體,這一思想的實現需要對各種不同屬性的類進行封裝,進而分析每種類型事物的屬性和功能方法,

這種思想將計算機軟件系統與外界系統一一對應,進行有針對性的研究。核心在於 (對象 + 消息)

面向過程:C語言是面向過程的編程語言,這種思想主要是為了去實現某種功能或目標去一步步研究算法流程,步步求精,

進而用一種最為簡捷的過程來實現最終的目標,核心為 (算法+數據)

6. static修飾類的成員變量和成員函數

(1)static修飾的成員變量屬於這個類,不屬於某個對象。

(2)static修飾的成員變量需要在類外進行初始化。

(3)static修飾的成員函數只能訪問static修飾的成員變量,不能訪問普通成員變量。

(4)static修飾的成員函數沒有this指針。

(5)基類static修飾的成員變量繼承給子類也只存在一份,基類和派生類共享該成員。

(6)類內部可以定義靜態的類對象成員,即 可以定義static修飾的類對象

// public:static base A; (正確) public: base A; (錯誤)

ble關鍵字

被mutable修飾的成員變量,是可變的,可以修改的,即使某個對象是const類型,該成員變量也可以被修改。在被const修飾的成員函數中該變量也可以被修改。

icit:

只能修飾構造函數,防止單參數的構造函數隱式類型轉換,把一個常量轉換成一個對象。

在沒有加explicit之前,可以把一個常量賦給一個對象。

推薦構造函數前最好加explict

tile:

該關鍵字意思為易變的,因為有些時候某個變量容易被改變,所以我們需要讀取當前該變量最新的數據,不需要編譯器做優化處理。

主要用於多線程中。volatile提醒編譯器它後面所定義的變量隨時都有可能改變,因此編譯後的程序每次需要存儲或讀取這個變量的時候,都會直接從變量地址中讀取數據。如果沒有volatile關鍵字,則編譯器可能優化讀取和存儲,可能暫時使用寄存器中的值,如果這個變量由別的程序更新了的話,將出現讀取數據不一致的現象。