C 基礎 簡要筆記

2021-10-01 23:10:45 字數 3549 閱讀 1030

c++的物件導向四大特性:

a. 封裝 b. 抽象 c. 繼承 d. 多型

c++基本語法:

c++可以定義為物件的集合,物件通過呼叫彼此的方法進行互動。

物件是類的例項。

資料型別:七種基本資料型別:

a. 布林型 bool

b. 字元型 char

c. 整型 int

d. 浮點型 float

e. 雙浮點型 double

f. 無型別 void

g. 寬字元型 wchar_t (typedef short int wchar_t)

變數宣告:

可以在多個檔案中多次宣告變數(使用extern可以在任何地方宣告變數),但只能在乙個檔案中定義同乙個變數。

變數作用域:

a. 函式或**快內部:區域性變數

b. 函式引數:形式引數

c. 所有函式外部:全域性變數

常量:

固定值,定義後不再改變。

整數常量:

十進位制/八進位制(字首基數0)/十六進製制(字首基數0x/0x)

定義常量的方式:

a. #define

b. 使用const

把常量定義為大寫字母。

資料修飾符型別:signed/unsigned/long/short

型別限定符:

a. const: 常量在程式執行期間不能被改變;

b. volatile:編譯器不優化volatile宣告的變數,讓程式可以直接從記憶體中讀取變數。

c. restrict ;

儲存類定義函式/變數的範圍和生命週期:

a.auto(c++17開始,auto不再是儲存類說明符)

b.register(c++17開始,register被棄用)

c.static: i. 修飾區域性變數,可以在函式呼叫之間保持區域性變數的值; ii. 修飾全部變數,使變數的作用域限制在宣告它的檔案內; iii. 修飾類資料成員,導致僅有乙個該成員的副本被類的所有物件共享

d.extern: i. 提供全域性變數的引用,全域性變數對所有檔案都是可見的; ii. 使用"extern"時,對於無法初始化的變數,會把變數名指向之前定義過的儲存位置; iii. extern是用來在另乙個檔案中宣告乙個全域性變數或函式;

e.mutable: i. 僅適用於類的物件。允許物件的成員替代常量。mutable成員可以通過const成員函式修改;

f.thread_local: i. 其宣告的變數,在建立執行緒時建立,在銷毀執行緒時銷毀; ii. 僅僅用於資料宣告和定義,不能用於函式宣告和定義。

c++陣列:固定大小/相同型別元素的集合。

a. 連續記憶體,索引訪問;

b. 宣告陣列,需指定元素型別與數量;

c. 初始化陣列;

d. 多維陣列;

e. 指向陣列的指標:陣列名是指向陣列第乙個元素的常量指標;

f. 傳遞陣列給函式: i. 陣列型別自動轉換為指標型別,因而實際傳的是位址;ii. 對於函式而言,陣列的長度無關緊要,因為c++不會對形式引數執行邊界檢查;

g. 從函式返回陣列:i. c++不允許返回完整的陣列,但允許返回指向陣列的指標(不帶索引的陣列名可以表示乙個指向陣列的指標); ii. 如果想從函式返回乙個陣列,則必須宣告乙個返回指標的函式; iii. c++不支援在函式外返回區域性變數的位址,除非定義區域性變數為static變數;

c++字串:使用字元』\0』終止的一維字元陣列。

a. strcpy() b. strcat() c.strlen() d. strcmp() e. strchr() f. strstr()

c++中的string類

#include
c++指標

a. 所有指標的值的實際資料型別,都是代表乙個記憶體位址的長的十六進製制數。

b. null指標,空指標,值為0,表明該指標不指向乙個可訪問的記憶體位置,如需檢查空指標,使用if();

c. 指標的算術運算:++/–/+/-;

d. 變數指標可以遞增,陣列不能遞增,因為陣列是乙個常量指標;

e. 指標的比較:==/;

f. 指標陣列:陣列的每個元素都是指標;

g. 指向指標的指標:多級間接定址 h. 傳遞指標給函式: i. 只需宣告函式引數為指標型別; ii. 能接受指標作為引數的函式,也能接受陣列作為引數; iii. 從函式返回指標:和從函式返回陣列類似,宣告乙個返回指標的函式即可。

引用:

a. 引用變數是乙個別名,它是某個已經存在變數的另乙個名字;

b. 引用與指標的對比: i. 不存在空引用,引用必須連線到乙個合法的記憶體;指標可以為空指標; ii. 一旦引用被初始化為乙個物件,就不能指向另乙個物件。指標可以在任何時候指向其他物件; iii. 引用必須在建立時初始化;指標可以在任何時間初始化;

c. 把引用作為返回值: i. 當返回引用時,注意被引用的物件不能超出作用域; ii. 返回乙個對區域性變數的引用是不合法的; iii. 可以返回乙個對靜態變數(static修飾)的引用。

c++標準庫沒有提供日期型別,繼承c語言用於日期和時間操作的結構和函式,

#include
c++基本的輸入輸出

#include #include
cout/cin/cerr/clog

c++資料結構

a. 使用者自定義的可用的資料型別,允許儲存不同型別的資料項;

b. struct type_name{} object_name;

c. 訪問結構成員,成員訪問運算子(.);

d. 結構作為函式引數;

e. 指向結構的指標,使用指向結構的指標訪問結構的成員,必須使用->運算子;

f. typedef

深度學習網路總結

機器學習演算法及其應用場景

演算法與資料結構(leetcode 題解)

cuda程式設計與並行優化

其他讀書分享如:《戰國策》,《智囊全集》

宇宙常識科普與星座辨別等等

html 基礎標籤 簡要筆記

html hyper text markup language 超文字標記語言 web三大基石之一 html,http,url html,用於頁面的規範化展示,超文字含義 不僅僅是文字,還包含其他的樣式。標記語言 可以理解為一種標籤語言,以成對的標籤,開始標籤和結束標籤成對出現,結束標籤中包含 丟失...

MySql簡要筆記

1.連線資料庫 mysql hlocalhost u username p password 2.顯示所有資料庫 show databases 3.建立資料庫 create dbname 4.刪除資料庫 drop dbname 5.開啟資料庫 use dbname 6.建立一張表 create ta...

Git簡要筆記

1.刪除某個資料夾的版本控制資訊 git rm r n cached 檢視當前路徑下有哪些檔案會被刪除。git rm r cached 刪除當前路徑下檔案。2.git建立版本庫 切換到專案所在目錄,將所有的檔案新增到並版本庫 git init git add 新增單個檔案 git add pom.x...