C 知識點細節補充(持續更新)

2021-10-19 22:39:46 字數 1315 閱讀 3535

這個系列主要是針對本人記憶不深刻的知識點進行整理,後期持續更新

c++中的explicit關鍵字只能用於修飾只有乙個引數的類建構函式, 它的作用是表明該建構函式是顯示的, 而非隱式的

與之相對應的另乙個關鍵字是implicit, 意思是隱藏的

類建構函式預設情況下即宣告為implicit(隱式)

class cxstring  // 沒有使用explicit關鍵字的類宣告, 即預設為隱式宣告  

cxstring(const char *p)

// 析構函式這裡不討論, 省略...

}; // 呼叫時

cxstring string1(24); // 這樣是ok的, 為cxstring預分配24位元組的大小的記憶體

cxstring string2 = 10; // 這樣是ok的, 為cxstring預分配10位元組的大小的記憶體

在c++中,如果建構函式只有乙個引數時,那麼在編譯的時候就會有乙個預設的轉換操作:將該建構函式對應資料型別的資料轉換為該類物件,也就是說 」cxstring string2 = 10; 「 這段**,編譯器自動將整型轉換為cxstring類物件(implicit隱式)

在explicit顯式情況下【explicit cxstring(int size)】,cxstring string1(24)可以,但cxstring string2 = 10不可以,explicit關鍵字取消了隱式轉換

定義在類中的成員函式預設都是內聯的

如果在類中未給出成員函式定義,而又想內聯該函式的話,那在類外要加上 inline,否則就認為不是內聯的

inline僅是乙個對編譯器的建議,最後能否真正內聯,看編譯器的意思

第乙個引數,用來統計程式執行時傳送給main函式的命令列引數的個數

第二個引數,用來存放指向的字串引數的指標陣列,每乙個元素指向乙個引數

ar**[0]指向程式執行的全路徑名

ar**[1]指向在dos命令列中執行程式名後的第乙個字串

ar**[2]指向執行程式名後的第二個字串

ar**[3]指向執行程式名後的第三個字串

u8 無符號char字元型別

u16 無符號short短整數型別

u32 無符號int基本整數型別

int 帶符號int基本整數型別

實習 C 知識點(持續更新)

vector 定義乙個二維陣列並初始化 方法1 vectorint vec 5,vector int 6 0 方法2 vectorint array m 這個m一定不能少 vectorarray m 初始化乙個m n的二維陣列 for int i 0 i array i resize n vecto...

C 小知識點總結 持續補充

1.程式執行時間 include 用到clock 函式 intmain 2.c c 取整函式ceil floor include 1 floor x 返回的是小於或等於x的最大整數。如 floor 10.5 10floor 10.5 11 2 ceil x 返回的是大於x的最小整數。如 ceil 1...

知識點(筆記,持續更新)

一 常用標頭檔案 1 include c 演算法庫 algorithms library 為 c 程式提供了大量可以用來對容器及其它序列進行演算法操作的函式。這些元件可以為函式或函式模板,大部份由標頭檔案 提供。2 向量 vector 是一種物件實體,能夠容納許多其他型別相同的元素,因此又被稱為容器...