C面試問題

2022-05-23 16:42:56 字數 2189 閱讀 2090

1、面向過程:分析解決問題所需要的步驟,然後用函式把這些步驟一步一步實 現。

物件導向:直接描述客觀世界的物件及其相互關係。現實世界中任何實體都 可以看作是物件,物件之間通過訊息相互作用,利用物件導向程式設計,我們只關心 藉口,不關心怎樣實現。

2、c++的三個特性:繼承、封裝和多型。

繼承:乙個物件直接使用另乙個物件的屬性和方法。繼承可以使子類具有父

類的各種屬性和方法,而不需要再次編寫相同的**。

封裝:在程式上,隱藏物件的屬性和實現細節,僅對外公開介面,控制屬性

的讀和修改的訪問級別。目的是:增強安全性和簡化程式設計。

多型:介面多種不同的實現方式。同乙個操作作用於不同的物件上可以有不 同的解釋,並產生不同的執行效果。

3、sizeof

是個運算子,用來判斷資料型別以及表示式長度。位元組數數的計算是

在編譯時進行的。

sizeof(型別說明符、陣列名或表示式)

4、typedef:用來為複雜的宣告定義簡單的別名。它本身是個儲存類的關鍵字。

typedef int newname:

#define:巨集定義又稱為巨集代換、巨集替換。三大預處理功能之一,另外兩個是

檔案包含和條件編譯。

5、enum:

列舉型別,在實際問題中,有些變數的取值範圍被限制在乙個有限的範

圍內。為了說明這些量,引入了新的資料型別。

6、struct、class 建構函式理解:

struct 和 class 最本質的區別就是預設的訪問控制:

struct 預設的是 public,而 class 預設的是 private。

struct:結構體型別,用於存放具有不同資料型別。

class:類,是構造程式的基本單位。

7、static:關鍵字。

宣告靜態變數,儲存在靜態記憶體中。作用:保持變數持久和

隱藏。靜態區域性變數在程式執行到該物件的宣告處的時被首次初始化,以後的函

數呼叫不再進行初始化。

8、const:關鍵字。它限定乙個變數不允許被改變。作用:在一定程度上可以提

高程式的安全性和可靠性。對別人理解程式也有一些幫助。同時,可以很方便地

進行引數的調整和修改。

9、c 和 c++記憶體分配:

(1)從靜態儲存區域分配。內存在程式編譯的時候就已經分配好,這塊內存在程式這個執行期間都存在。

(2)在棧上建立。在執行函式時,由編譯器自動分配和釋放。

(3)動態記憶體分配。由程式設計師自己決定分配,程式在執行時候用 malloc 或

new 申請任意位元組記憶體,然後由程式設計師自己負責在何時用 free 或 delete 釋放記憶體。

這樣動態記憶體的生存週期由程式設計師決定,使用起來比較靈活。

char *p;

p=(char*)malloc(size);

.......

free(p):

int *p=new int;

........

delete p;

10、指標和引用:

引用:引用就是某乙個變數的乙個別名,對引用的操作與對變數的直 接操作

完全一樣。inta;int & ra=a; 定義引用 ra,它是變數 a 的引用。

區別:(1)引用不能為空,指標可以為空。

(2)引用不可以改變指向,指標可以改變指向。

(3)引用的大小是所指向的變數的大小,而指標是指本身的大小。

(4)引用僅僅是個別名,而指標是個實體。

11、函式的返回值:

乙個函式只能有乙個返回值,超過乙個返回值的函式可以使用指標或結構體變數。

12、extern:

宣告外部變數或函式,已標示變數或函式的定義在別的檔案中,提

示編譯器遇到此變數或函式時,在其他模組中尋找其定義。

13、char*p=」sdfsdf」; 這種方法初始化的是常量字串,所以 p 不能修改字串

的內容。

char p=」sdfsdf」;

p=」sdfsdf」;

char p=」sdfsdf」;

這兩個都是變數,可以修改。
指標在 32 位系統下都佔 4 個位元組。

14、陣列名和指標:

陣列名不是指標,陣列名表示的是陣列首元素的位址,是乙個常量。

指標存放的是乙個變數的位址,它本身是個變數。

15、指標函式與函式指標:

16、同步與非同步:

面試問題c

1 如何避免記憶體洩漏 2 namespace 3 如何防止記憶體洩漏 4 堆和棧的區別 5 記憶體的幾種形式 6 linux指令 1 如何避免記憶體洩漏 答 記憶體洩漏 記憶體洩漏是指由於未能釋放掉不再使用的記憶體情況,並不是指內存在物理上的消失,而是應用程式分配某段記憶體後,由於設計錯誤失去了對...

C 面試問題

一面 1 多型性都有哪些?靜態和動態,然後分別敘述了一下虛函式和函式過載 2 動態繫結怎麼實現?就是問了一下基類與派生類指標和引用的轉換問題 3 型別轉換有哪些?四種型別轉換,分別舉例說明 4 操作符過載 操作符 具體如何去定義,讓把操作符過載函式原型說一遍 5 記憶體對齊的原則?原則敘述了一下並舉...

C 面試問題

1 概念 陣列 儲存連續多個相同型別的資料 2 賦值 同型別的指標變數可以相互賦值,陣列不行,只能乙個乙個元素的賦值或拷貝 3 儲存方式 陣列 連續記憶體空間。4 sizeof 陣列的sizeof求的是占用的空間 位元組 在32位平台下,無論指標的型別是什麼,sizeof 指標名 都是4,在64位平...