C 課堂學習(2)

2021-09-27 01:31:02 字數 1770 閱讀 8705

1.函式引數的預設值

在c++中,宣告乙個函式時,可以為函式的引數指定預設值。但呼叫預設引數值的函式時,可以不寫出引數,這時就相當於以預設值作為引數呼叫該函式。

c++規定,預設引數只能放在形參列表的最後,而且一旦為某個形參指定了預設值,那麼它後面的所有形參都必須有預設值。實參和形參的傳值是從左到右依次匹配的,預設引數的連續性是保證正確傳參的前提。

老師的**:

#include

using namespace std;

void

print

(int a,

int b=0)

;int

main()

void

print

(int a,

int b)

}

2.函式的過載

c++ 不允許變數重名,但是允許多個函式取相同的名字,只要參數列不同即可,這叫作函式的過載(讀「蟲載」,不讀「眾載」,其英文是 overload)。過載就是裝載多種東西的意思,即同乙個事物能完成不同功能。

老師的**:

#include

using namespace std;

void

print

(int a)

;void

print

(char

*s);

intmain()

void

print

(int a)

//這裡int型

void

print

(char

*s)//這裡char型

由上面兩個例子可知,print()函式裡面形式引數型別可以不同

3.new and delete

1)在c++中,通常使用new運算子來實現動態記憶體分配。

new的第一種用法:

p=new t

其中t是型別名,p是型別為t*的指標。這樣的語句會動態分配出一片大小為sizeof(t)的位元組的記憶體空間,並將該記憶體空間起始位址分配給p。例如:

int *p;

p=new int;

*p=5;

這樣就分配了乙個4個位元組大小的記憶體空間了,而p指向這片空間。通過p可以讀寫該記憶體空間。

2)new還有另一種用法,用來分配乙個任何大小的陣列:

p=new t[n]

t是任意型別名,p是型別為 t的指標,這樣就分配出了nsizeof(t)個位元組的記憶體空間,這片空間給p。例如:

int *pn;

int i=5;

pn=new int[i *20];

pn[0]=20;

pn[100]=30;

3)分配的空間一定要釋放,用delete運算子釋放。

如:動態分配乙個陣列時:delete[ ]指標;

例如:int* p=new int[20];

p[0]=1;

deletep;

老師的**:

#include

using namespace std;

#define count 10

intmain()

for(i=

0;i)for

(j=0

;j) cout

] a;

return0;

}

c 課堂筆記(2)

include include includeusing namespace std int main 1計數控制的迴圈 2條件控制的迴圈 1當型迴圈結構,表示當條件p成立 為真 時反覆執行a操作,直到條件p不成立 為假 時迴圈結束 2直到型迴圈結構,表示先執行a操作,再判斷條件p是否成立 為真 若...

C語言課堂筆記2

一.順序語句與分支語句的知識總結 1 for語句.forfor 先判斷條件後執行語句。注 for語句末尾不加分號 2 while語句.while 表示式 先判斷條件後迴圈。注 while語句末尾不加分號,否則將陷入死迴圈。3.c 語言處理的資料基本型別及形式 資料基本型別 常量 值保持不變 和變數 ...

C 課堂作業 2

給定乙個常數k以及乙個單鏈表l,請編寫程式將l中每k個結點反轉。例如 給定l為1 2 3 4 5 6,k為3,則輸出應該為3 2 1 6 5 4 如果k為4,則輸出應該為4 3 2 1 5 6,即最後不到k個元素不反轉。輸入格式 每個輸入包含1個測試用例。每個測試用例第1行給出第1個結點的位址 結點...