c 面試常見題 Part 1 基礎

2021-09-20 21:11:31 字數 2018 閱讀 7087

都能動態申請記憶體和釋放記憶體

malloc&free是標準庫函式,new&delete是運算子,對於非內部資料型別的物件而言,只有new,delete能自動呼叫物件的建構函式和析構函式

指標指向變數的位址,引用是變數的別名,

引用不佔記憶體單元,指標本身佔4位元組

引用必須初始化,並在初始化後不能修改,而指標可以不初始化,還可以修改,不存在指向空值的引用,但存在指向空的指標

指標可以有多級int **a,引用只有一級

一般變數和指標作為形參都要單獨分配記憶體空間,引用是直接對實參進行操作

引用和指標都能改變實參

(靜態多型)編譯時多型:函式模板和函式過載

(動態多型)執行時多型:虛函式:允許在派生類中重新定義與基類同名的函式,並且可以通過基類指標或引用來訪問基類和派生類中的同名函式

純虛函式就是虛函式=0,含有純虛函式的類被稱為抽象類,必須要在子類中實現

兩者不能被static修飾,因為它們需要動態繫結

繼承:重用**,子類可以使用父類的功能

封裝:提供介面,隱藏實現細節

常變數:const int a = int const a

常引用:const int &a = int const &a

常物件:a const a = const a a

常成員函式:類名::fun(形參) const

常陣列:int const array[大小] = const int array

常指標:const int* a常量指標,不能修改它所指向的內容,int* const a指標常量,不能指向其他的記憶體模組  (看const和*位置)

全域性/靜態儲存區:全域性變數和靜態變數

常量儲存區:常量

**區:二進位制**

sizeof:只計算資料成員大小,不計算static成員

struct{

int a;

short b;

char c;

inr *d;

strlen:返回字串長度 不包括『\0』

內聯函式使用時=直接將整個函式體的**插人呼叫語句處,提高**可重用性,但增加了**體積

友元(frend)機制允許乙個類將對其非公有成員的訪問權授予指定的函式或者類

分友元函式和友元類

建構函式:父類->類成員->基類

析構函式:基類->類成員->父類

預編譯-》彙編-》編譯-》鏈結

<>從標準庫中開始查詢

「」從使用者指定路徑開始查詢

為了能夠正確實現c++**呼叫其他c語言**

auto_ptr:方便管理單個堆物件的記憶體(最好不要用)

unique_ptr:方便管理堆物件或者堆物件陣列的記憶體

shared_ptr:方便管理需要共享所有權的記憶體

weak_ptr:weak_ptr是shared_ptr的觀察者,負責從shared_ptr產生乙個weak_ptr但是不會增加引用計數,當shread_ptr失效以後,weak_ptr也會失效

1)關鍵字 auto nullptr 

2)lambda表示式

stl array 單向列表slist  雜湊map,set

增加了多執行緒程式設計pthread

智慧型指標

function(函式包裝器,可以放下一切可呼叫之物)   bind(函式介面卡,改變函式的介面) 

②修飾類的成員函式和成員變數時:屬於整個類,不屬於物件,為各個物件所共享

類外儲存,只能在類外初始化

靜態成員函式只能訪問靜態成員變數,沒有this指標

auto :必須初始化,系統會根據初始化的變數型別自動確定該變數的資料型別

register 

vilotile 易變的意思,主要用於多執行緒中,讀取該變數當前最新值,不需要編譯器做優化處理

Part1 資料系統基礎

前四章講述應用於所有資料系統的基本理念,不論是執行在單機還是分布式的機器集群上。第一章介紹我們將要使用的術語和方法。解釋 可靠性 可擴充套件性和可維護性 的具體含義,以及我們如何去達到這些目標。第二章對比若干種不同的資料模型和查詢語言,從開發者角度是不同資料庫間最明顯的區分因素。我們可以看到不同的資...

makefile教程(基礎) part1

target.prerequisites command 解釋 target 是乙個目標檔案,也可以是執行檔案,還可以是乙個標籤 label prerequisites 要生成那個target所需要的檔案或是目標。command make需要執行的命令。任意的shell命令 main main.o ...

前端常見面試題總結part1

使用let宣告的變數不與window產生對映 let n 10,obj let fn obj.fn function obj.n fn 10 obj.fn 10 console.log n,obj.n undefined或者nan與數值相加 結果都為nan undefined與字串相加,先轉換成字串...