C 知識總結 P01 型別系統

2022-09-13 01:15:10 字數 1489 閱讀 1244

程式語言的型別系統有靜態型別與動態型別之分。靜態型別的程式語言在編譯期間會進行型別檢查,如果編譯期間發現型別不匹配或型別未知,編譯器就會報出對應的語法錯誤;動態型別的程式語言在執行期間才會確定常量變數型別,因而更加靈活。

靜態型別與動態型別各有優勢。靜態型別的程式語言要求程式設計人員為每乙個變數指定型別,同時編譯器會進行型別檢查,能減少**中的錯誤。而使用動態型別程式語言的程式設計人員,在**期間無需考慮型別問題,可以更高效地專注在解決問題上。另外,動態型別的程式語言在執行時要進行型別的推斷,使這種語言編寫的程式的執行效率不高,相比之下,使用靜態型別程式語言編寫的程式具有更高的執行效率。動態型別的語言如python多用與指令碼、原型驗證等對執行效率要求不高的場景,靜態型別的語言如c++、j**a等更常用於工程實現等場景。

在c++中常用的基本型別有以下幾種:

引用:引用即別名,引用無法變更指向的變數,因此要求引用宣告時就要初始化。引用不是物件,故不存在引用的陣列,不存在指向引用的指標,不存在引用的引用。

指標和引用都可以作為函式的引數和返回值。當函式引數為變數本身時,會發生引數的拷貝。如果函式引數為中大型的資料結構時,在呼叫函式時拷貝引數的代價太高。傳引用引數和傳指標引數都可以避免這種情況。因此通常當函式引數為基本型別時,推薦使用傳值引數;當函式引數為容器、類等自定義的資料結構時,推薦使用傳引用引數。

另外,使用傳引用引數和傳指標引數,函式內部的**可能會對引用、指向的外部變數產生影響,當函式需要改變這些變數時,可以直接使用傳引用引數和傳指標引數,否則,為防止不可預期的影響,應使用const type& refconst type* pointer

返回引用和指標的函式,需要注意返回的引用和指標不能指向函式內的區域性變數。這些區域性變數在函式執行結束後會被銷毀,造成引用和指標懸垂。

函式:函式指標多用於函式式程式設計或**函式這些情況。

bool cmp(string& s1, string& s2) 

bool (*pf)(string& s1, string& s2); // 函式指標的宣告

pf = cmp;

列舉:使用列舉型別定義系列常量是一種非常好的方法,如定義多種顏色、定義多種選項等。

enum color ;

color tmp = red; // color 作為一種型別使用。

列舉型別的本質是整數。

一些基本型別間存在隱式型別轉換,比如整數擴充套件為浮點數這種不會損失精度的轉換。某些情況下需要進行強制型別轉換。(見《遊戲開發:世嘉新人培訓教材》)

在c語言中,使用typedef進行型別別名的定義。在c++中,使用using關鍵字定義型別別名。

using length = unsigned int;

(P0 1筆記)機器學習簡介 機器學習 李巨集毅

實際機器學習就是在尋找乙個function函式 比如語音識別 比如影象識別 等等 由此可以將整個機器學習可以分成的步驟 classification 分類 多層次分類舉例 文件分類 上面講的都是我們讓機器解的task任務 接下來要講的就是在解任務的過程中,第一步就是要選乙個function set,...

C語言 01 型別總結

c語言的資料型別分為基本資料型別 構造型別 指標型別 列舉型別和空型別等幾種。一 基本資料型別 1.1 整型int 1 short int short 佔2個位元組,佔位符 d i 2 long int long 佔8個位元組,佔位符 ld 3 signed int signed 佔4個位元組,佔位...

C 類知識點總結

c 類 1.定義抽象資料型別 1 成員函式的宣告必須在類的內部,它的定義既可以在類的內部也可以在類的外部。定義在類內部的函式是隱式的inline函式。this 2 成員函式通過乙個名為this的額外的隱式引數來訪問呼叫他的那個物件。當我們呼叫乙個成員函式時,用請求該函式的物件位址來初始化this。偽...