C 學習筆記01

2021-09-10 06:41:22 字數 2043 閱讀 3441

1、引用

定義乙個引用,並將其初始化為引用某個變數。

型別名 & 引用名 = 某變數名;

int n =4;

int&r = n;

//r引用了n,r的型別是int &

某個變數的引用,等價於這個變數,相當於該變數的乙個別名。

注:

引用的簡單示例:

在c語言中:

void

swap

(int

*a,int

*b)int n1,n2;

swap

(&n1,

&n2)

;//n1,n2的值被交換

有了c++的引用後:

void

swap

(int

&a,int

&b)int n1,n2;

swap

(n1,n2)

;//n1,n2的值被交換

在定義引用時,前面加const關鍵字,即為「常引用」

int n;

const

int&r = n;

此時r的型別為const int &

不能通過引用去修改其引用的內容:

int n =

100;

const

int&r = n;

r =10

;//編譯出錯,因為此時r為乙個常引用,不能修改其內容

n =200

;//編譯沒問題

常引用和非常引用的轉換:

const t & 和t & 是不同的型別。

2、const關鍵字

1)定義常量,類似於c中的define。

const

int max_val =10;

const

double pi =

3.14

;const

char

*school_name = 「peking university」;

2)定義常量指標

注:不可通過常量指標修改其指向的內容

int n,m;

const

int*p =

&n;*p =5;

//編譯出錯。因為此時*p是常量指標

n =4

;//ok

p =&m;

//ok,常量指標的指向可以變化

不能把常量指標賦值給非常量指標,反過來可以

const

int*p1;

int*p2;

p1 = p2;

//ok

p2= p1;

//error

p2 =

(int

*) p1;

//ok,強制型別轉換

3)定義常引用(在上面已經提到過)

3、動態內容分配

用new運算子實現動態記憶體分配

1)分配乙個變數:

p = new t;
t:任意型別名

p:型別為t * 的指標

2)分配乙個陣列:

p = new t[n]

;

t:任意型別名

p:型別為t * 的指標

n:要分配的陣列元素的個數,可以是整型表示式

動態分配出一片大小為n * sizeof(t)位元組的記憶體空間,並且將該記憶體空間的起始位址賦值給p。

用"new"動態分配的記憶體空間,一定要用「delete」運算子進行釋放

delete指標;//該指標必須指向new出來的空間.

delete 指標;

一片儲存空間不能被delete多次

c 學習筆記01

c 標準輸入輸出流類物件 cin cout cerr 對應c語言中的3個檔案指標 stdin,stdout stderr 結構體和類的區別主要在訪問控制方面 訪問許可權分為3種 public,private,protect 結構體是一種特殊的類預設為public 類預設為private 物件導向思想...

C 篇 C 學習筆記01

整行輸入 includestring mystr getline cin,mystr 字串相加 includestring s1 i am string s2 a boy string s3,s4 s3 s1 s2 s4 8 給字元陣列賦值 includechar szmyname 20 strcp...

C 學習筆記 01揹包

時間限制 20000ms 單點時限 1000ms 記憶體限制 256mb 且說上一周的故事裡,小hi和小ho費勁心思終於拿到了茫茫多的獎券!而現在,終於到了小ho領取獎勵的時刻了!小ho現在手上有m張獎券,而獎品區有n件獎品,分別標號為1到n,其中第i件獎品需要need i 張獎券進行兌換,同時也只...