1.const: c語言中,被const關鍵字修飾的變數變為唯讀變數,不能通過變數名修改它對應空間的值,但可通過其他途徑修改此變數對應空間的值,一般修飾函式形參。在c++中,與c語言有兩點不同:1、被它修飾的變數為常量,任何途徑都無法修改;2、指標必須是const型對const型,非const型對非const型。
2.static:c語言中,static修飾區域性變數、全域性變數和函式,被修飾的區域性變數生存週期從函式結束延長到程式結束;被修飾的全域性變數和函式,只可在本程式中被呼叫,不能在其他程式中被訪問;c++中,static修飾的成員必須在類外初始化,const static修飾的成員可在類內初始化,static修飾的類內函式不屬於物件,屬於類;因為static修飾的函式無this指標,所以靜態成員函式不能訪問非靜態成員,非靜態成員函式可以訪問靜態成員。
3.register
作用:請求編譯器盡可能的將變數存在cpu內部暫存器中,一般的變數存在記憶體中,當需要時cpu再從記憶體中把它抓取到cpu中,使用register把它存在cpu中省去了cpu從記憶體中抓取資料的時間,提高執行效率。
注意:1、盡可能,因為cpu記憶體有限,不可能全放在裡面,一般把頻繁使用的變數放在裡面,如迴圈變數。
2、register只能修飾區域性變數,不能修飾 全域性變數和函式。
3、register修飾的變數不能使用取位址符獲取位址,因為它儲存在cpu裡,不在記憶體中。
4、register修飾的變數一定是cpu接受的型別。
c++優化:register修飾的變數可以用取位址符取位址。
4.new和delete
new是c++中特有的關鍵字,用來給變數分配空間;delete是用來釋放空間。
用法如下:
分配指標空間
int*p = new int;
delete p;
分配陣列空間
int*p = new int[3];
delete p;//方括號裡不需填東西
還可以進行初始化
int*p = new int(3);//這時 *p就指向3
int*p = new int[3](1,2,3);//注意,這是不允許的只能對單個記憶體空間進行初始化
5.new和malloc的區別
1.new是c++裡的乙個關鍵字,malloc是c中的函式
2.new分配單個記憶體空間可初始化,malloc不可以
3.new是以具體型別分配空間,malloc是以位元組分配空間
4.new返回指向此型別的指標,不用進行強制型別轉換,malloc返回void型的指標,需要強制型別轉換
C 裡partial關鍵字的作用
url b 1.什麼是區域性型別?b c 2.0 引入了區域性型別的概念。區域性型別允許我們將乙個類 結構或介面分成幾個部分,分別實現在幾個不同的.cs檔案中。區域性型別適用於以下情況 color red 1 型別特別大,不宜放在乙個檔案中實現。2 乙個型別中的一部分 為自動化工具生成的 不宜與我們...
三 constexpr關鍵字(從C到C )
內容參考於 21天學通c 第八版 1.示例 include constexpr double getpi constexpr double twicepi intmain 執行結果 constant pi contains value 3.14286 constexpr getpi returns ...
C 裡partial關鍵字的作用 ZZ
1.什麼是區域性型別?c 2.0 引入了區域性型別的概念。區域性型別允許我們將乙個類 結構或介面分成幾個部分,分別實現在幾個不同的.cs檔案中。區域性型別適用於以下情況 1 型別特別大,不宜放在乙個檔案中實現。2 乙個型別中的一部分 為自動化工具生成的 不宜與我們自己編寫的 混合在一起。3 需要多人...