C 學習筆記

2021-10-08 12:16:17 字數 3574 閱讀 2428

學習譚浩強編著的《c++程式設計》過程中的一些筆記,mark一下,好記性不如爛筆頭

1、cpp內建函式inline2、過載函式:一名多用

函式名相同,引數個數或者引數型別或者引數循序不同

3、函式模板(泛型)function template

template

t max(t a, t b, t c)

4、變數5、函式

1)、內部函式:僅限於本檔案中其他函式呼叫;

例如:static int fun(int a, int b)

2)、外部函式:在定義函式時,在函式最左端冠以關鍵字extern,則表示此函式時外部函式,可被其他檔案呼叫;

如果定義函式時,預設省略關鍵字extern,預設為外部函式

例如:extern int fun(int a, int b)

6、預處理指令

預處理功能3中:巨集定義、檔案包含、條件編譯

1)、巨集定義:可以用#define命令將乙個指定的識別符號(巨集)來代表乙個字串;

#define 識別符號 字串

#define pi 3.1415926

2)、檔案包含:指乙個原始檔可以將另乙個原始檔的全部內容包含進來,即將另外乙個的原始檔包含到本檔案之中;

#include 「file.cpp」

#include

7、條件編譯

1)、當指定的識別符號已被#define命令定義過,則在程式編譯階段只編譯程式1,否則編譯程式段2,#else部分可以沒有。

#endif是用來限制#ifdef命令的範圍。

#ifdef 識別符號

程式段1

#else

程式段2

#enddef

2)、當指定的表示式為真(非0),就編譯程式段1,否則編譯程式段2

#if 表示式

程式段1

#else

程式段2

#endif

8、陣列

1)、用陣列元素作函式實參

2)、用陣列名做函式引數

3)、用多維陣列名作函式引數

字元陣列定義和初始化

字串和字串結束標誌』\0』

9、字串連線函式strcat

例如:strcat(chart,const chart);

10、字串複製函式strcpy(chart,const chart)

//第乙個引數必須是陣列名,第二個引數可以是陣列名也可以是字串常量

strcpy(str1,str2);或者strcpy(str1,「china」);

strcyp(str1,str2,2);//將字元陣列str2中的前兩個字元複製到str1中

11、字串比較函式strcmp(const chart, const chart)

指將兩個字串自左至右逐個字元進行比較大小,直到遇到不同的字元或者』\0』為止。

如果全部相同,則認為字元相等;若出現不同的字元,則以第乙個不相同的字元的比較結果為準;

比較結果:

1)兩個字元相同,結果為0;

2)str1大於str2,結果為正整數;

3)str1小於str2,結果為負整數;

12、字串長度函式strlen(const chart)

測試字串長度的函式,函式的值為字串中的實際長度,不包括』\0』

chart str[10] = 「china」;

cout << strlen(str);//輸出結果為5

字元陣列應用舉例

13、指標

& 取位址運算子

i_pointer=&i; //將i的位址存放到i_pointer中

乙個變數的位址稱為該變數的指標

指標變數的值是位址

指標定義:基型別+*指標變數名;

int * ipointer;

14、指標函式

呼叫函式時不會改變實參指標變數的值,但可以改變實參指標變數所指向變數的值

15、引用&

作用是為乙個變數取乙個別名;

宣告引用時 &代表引用宣告符

例如:int a;

int &b = a;//宣告b是a的引用

區別取位址符和變數引用

當&a前面有型別符時(int &a),它必然是對引用的宣告;

如果前面無型別符(cout << &a),則是取變數的位址

16、結構體

例如:struct student

student1,student2;//宣告結構體時並定義兩個變數

17、動態分配和撤銷記憶體的運算子new和delete

例如:int * p = new int(100);//開闢乙個存放整型的儲存空間,並指定該整型的初值為100,將返回該儲存空間的位址賦給指標變數p

delete p;

chart * pt = new char[30];

delete pt;//在指標變數前面加一對方括號,代表是對陣列空間的操作

18、共用體(聯合體)

這種使幾個不同型別的變數共占同一段記憶體的結構,稱為共用體

宣告共用體形式如下:

union 共用體名稱

;共用體與結構體的比較

結構體:結構體所佔記憶體長度是各成員佔記憶體之和

共用體:共用體所佔記憶體長度是等於最長的成員的長度

19、列舉

enum weekay;

20、使用typedef宣告型別

typedef int integer;//使用integre代表int型別

typedef float real; //使用real代表float型別

21、inline成員函式

c++要求內建函式要用inline關鍵字宣告,但對類內部定義的成員函式可以省略inline,

因為這些成員函式已經被隱含的指定為內建函式

22、析構函式

是乙個特殊的成員函式,它的作用與建構函式相反,它的名字前面帶乙個「~」符號。

當物件的宣告週期結束時,自動執行析構函式。

23、多型

向不同的物件傳送同一條訊息,不同的物件在接收時會產生不同的行為。

24、純虛函式

virtual void test() const =0;

凡是包含純序函式的類都是抽象類

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...