c 對c的加強(二)

2021-10-03 20:33:26 字數 1583 閱讀 9133

c的關鍵字修飾:這個關鍵字請求編譯器盡可能的將變數存在cpu內部暫存器中,而不是通過記憶體定址訪問,以提高效率。省去了cpu到記憶體中抓取資料的時間。

c++的公升級:

volatile: 防止編譯器將所修飾的變數載入到暫存器中進行優化

c++ 引用 vs 指標(都可以做形參和返回值): 指標容易造成段錯誤;引用則代表是變數的另乙個別名,操作引用等於操作變數本身。

本質:指標是資料型別,引用是一種變數別名。

記憶體分配:都占用記憶體空間,但指標可以操作,引用則自動被系統優化,使用者無法訪問。

級數:指標可以多級指標但引用最多到兩級(右值引用)。

使用效率:引用高於指標。

使用

int i;

int&n = i;

//n即為i的引用,操作不分彼此。但引可以做形參。

優點

引用的分類:左值引用和右值引用(注意左值引用只能繫結左值,右值引用只能繫結右值)引用佔記憶體空間,但使用者無法訪問

&&:右值:不能對該值取位址或者修改該值;通過&&定義,是乙個右值引用的名字,但定義的右值本質上還是左值,需要用std::move()轉化成右值

const:修飾乙個變數(全域性,區域性)、修飾函式返回值

c++的公升級

動態記憶體分配(new,delete)

char

*ptr =

(char*)

malloc

(sizeof

(char)*

100);if

(ptr ==

null).

....

.free

(ptr)

;ptr =

null

int

*ptr =

newint

[100];

//int p[100];

int*p2 =

newint

;//int *p2 = (int *)malloc(sizeof(int));

int*p3 =

newint(5

);//初始化為5..

....

delete p2;

delete p3;

delete

p;

new vs malloc

typedef

int(

*p_func)

(int

,int);

//p_func p_func=函式名;

using p_func int(*

)(int,

int)

;

C 對C的加強

c 是c語言的繼承,它既可以進行c語言的過程化程式設計,又可以進行以抽象資料型別為特點的基於物件的程式設計,還可以進行以繼承和多型為特點的物件導向的程式設計。c 擅長物件導向程式設計的同時,還可以進行基於過程的程式設計,因而c 就適應的問題規模而論,大小由之。c 不僅擁有計算機高效執行的實用性特徵,...

C 對C的加強

c 是c語言的繼承,它既可以進行c語言的過程化程式設計,又可以進行以抽象資料型別為特點的基於物件的程式設計,還可以進行以繼承和多型為特點的物件導向的程式設計。c 擅長物件導向程式設計的同時,還可以進行基於過程的程式設計,因而c 就適應的問題規模而論,大小由之。c 不僅擁有計算機高效執行的實用性特徵,...

c 對c的加強

1.register關鍵字的加強 register修飾符暗示編譯程式相應的變數將被頻繁地使用,如果可能的話,應將其儲存在cpu的暫存器中,以加快其儲存速度,這只是一種請求,編譯器可以拒絕這種申請。1 register變數必須是能被cpu所接受的型別。這通常意味著register變數必須是乙個單個的值...