C 學習筆記

2021-10-11 09:15:07 字數 3174 閱讀 6074

1.vector

可以方便的進行陣列的元素管理

vectorvecdouble = ;    //容器的宣告和賦初始值

vecdouble.push_back(4.4); //尾部新增元素

//原始方法遍歷容器內元素

for(int i = 0; i < vecdouble.size(); i++)

//迭代器方法遍歷容器內元素

vector::iterator it;

sort(vecdouble.begin(), vecdouble.end()); //公升序排序容器內元素

for(it = vecdouble.begin(); it!=vecdouble.end(); ++it)

reverse(vecdouble.begin(), vecdouble.end()); //降序排序容器內元素

for(it = vecdouble.begin(); it!=vecdouble.end(); ++it)

1. 引用
簡化指標宣告和賦值過程,可以直接傳遞位址從而簡化傳遞過程

int num = 101;

int& ref_num = num;

cout << num << endl;

cout << ref_num << endl;

ref_num = 102; //可以直接修改引用達到修改原值的功能

cout << ref_num << endl;

const int& c_ref_num = 103; //常量賦值需要最前加const關鍵字,當然也不能更改數指

cout << c_ref_num << endl;

2.動態分配記憶體

int *ptr = new int; //動態分配記憶體

*ptr = 10;

delete ptr; //刪除之前所分配的記憶體

1) new
程式執行中臨時分配一定位址給予變數(在堆記憶體中分配,不佔記憶體位址)

不要建立兩個指向同一記憶體塊的指標,有可能誤刪兩次

//不能這樣哦,會誤刪兩次哦!!!

int *ptr = new int;

int *ptr2 = ptr;

delete ptr;

delete ptr2;

2)delete
int *intarray = new int[10];

delete intarray; //使用delete可釋放陣列型指標

3.程式的記憶體分配

//棧區

int num = 100;

int nums[10];

int *ptr_num = nullptr;

//堆區

double * darray = new double[10];

darray[0] = 0.11;

delete darray;

4.函式指標

int (*ptrfunction)(int, int);   //宣告函式指標

ptrfunction = function; //函式指標賦值

(*ptrfunction)(int, int); //函式執政呼叫

宣告中的()是必須的,要不然就是宣告指標函式,即為返回值為指證的函式

呼叫中的()可以不加

函式指標可以做函式引數,格式以宣告函式的格式一致

int (*ptrfunction)(int, int);   //宣告函式指標陣列
c++11特有功能

auto ptrfunction = function;    //函式指標賦值自動型別(推斷需要確保變數的型別與初始型別一致)

//需要初始化,防止野指標

typedef int (*ptrfunction)(int, int); //簡化型別定義

ptrfunction ptrfunc;

line int function (int);    //宣告內聯函式

line int function (int)

主要用於類的訪問解釋:類似於#define,將內容直接替換到呼叫的地方

目的:這樣可以提高程式的執行速度

使用建議:若呼叫函式所用的時間較長於函式執行的時間,那麼建議使用內聯函式(**執行時間短,內容簡單,記憶體使用量較大)

tip:1. 定義時(實現時)inline關鍵字可以省略。大**量時,編譯器會忽略inline,而還原成乙個函式

的2-1的一節也有引用的內容

1.函式引數引用型別
將引用變數做函式引數時,函式將使用原始資料,而非副本

當資料所佔記憶體比較大時,建議使用引用引數

引用引數中使用const關鍵字可以避免引數被無意修改

2.函式返回值引用型別
不要返回區域性變數引用型別

C 學習筆記( )

一 語法 迴圈 foreach 型別識別符號 in 表示式 code 用法 例子int temp foreach int num in temp 每次從temp取乙個元素賦給num直至取完 console.writeline n num 每行顯示乙個元素 執行結果 c 中唯讀 只寫控制 class ...

C 學習筆記

1.函式特徵 有函式頭和函式體 接受乙個引數 返回乙個值 需要乙個原型。2.c 命名規則 在名稱中只能使用字母字元 數字和下劃線 名稱的第乙個字元不能是數字 區分大寫字母和小寫字母 不能將c 關鍵字用作名稱 以兩個下劃線或下劃線和大寫字母打頭的名稱被保留給實現 編譯器及其使用的資源 使用,以乙個下劃...

c 學習筆記

屬性 屬性開頭字母大寫 屬性可以判斷輸入的非法值 屬性本身不儲存值 依靠字段 索引器 using system using system.collections.generic using system.linq using system.text namespace b try catch exc...