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變數必須是乙個單個的值...