C 第一部分總結

2021-09-13 14:09:16 字數 3225 閱讀 3594

c++(一).

一丶復合型別

1指標與引用

(一)指標

(1)指標的特點

指標持有乙個物件的位址,稱為指標「指向」該物件

通過指標可以間接操縱它指向的物件

(2)指標的定義

型如int*a   char*a,*b

(3)取位址符

使用取位址符"&"

型如int *pi=&ival

(4)特殊

void型別

可以持有任何型別的位址值,即通用指標

(4)注意

指標不能儲存非位址值,也不能被賦值或初始化為不同型別的位址值

指標可以進行加或減整數值的算術運算

自增、自減運算適用於指向陣列元素的指標

引用左值引用

(1)引用的定義與初始化

引用由型別識別符號和乙個取位址符(&)來定義

型別& 引用名 = 初始值;

(2)引用關係

引用一旦初始化,就不能再指向其他的物件,對左值引用的所有操作都會被應用在它所指向的物件上

右值引用

(1)右值引用的定義與初始化

型別 &&右值引用變數 = 右值表示式

(2)注意

右值引用只能繫結到臨時物件

右值引用引用的物件將要被銷毀,而且該物件沒有其他使用者

(3)std::move

返回給定物件的右值引用

在中定義

呼叫std::move是告訴編譯器希望像對待右值那樣處理乙個左值。所以,對乙個物件呼叫std::move後,可以銷毀它,也可以給它賦予新的值,但不能使用被移動後的物件的值。

const指標

(1)型別

型如const type *cp; 或者type const *cp;或者type* const cp = initaddressvalue;

(二)結構體和列舉

結構體struct

(1)定義

struct 結構體型別名;

例如struct x ;

(2)注意

結構體中的資料不能單獨使用

列舉列舉型別定義了一組命名的整數常量

(1)例如

enum trafficlight ;

trafficlight列舉型別定義了3個常量:0,1,2 分別和名字red,green以及yellow關聯。

可以在{}內賦值

陣列與指標

(1)例如int ia[5]

使用陣列時一般會轉換為指標

ia是乙個int*型別的指標常量

ia和&ia[0]都表示陣列第乙個元素的位址

(2)auto和decltype與陣列名

當使用陣列名作為乙個auto 變數的初始值時,得到的型別是指標而不是陣列

decltype(陣列名)返回的是陣列型別:大小和元素型別

begin與end

(1)定義

在標頭檔案中定義

(2)使用

begin(陣列名)

返回指向陣列第乙個元素的指標

end(陣列名)

返回指向陣列最後乙個元素的下乙個位置的指標

標準庫型別string

(1)使用

string 表示可變長度的字串行

使用string 類要包含標頭檔案

(2)定義與初始化string

預設初始化

string a;

拷貝初始化

string a=b

string a="abcd"

直接初始化

string a("welcome");

string a(5, 'b');     a的內容是bbbbb

(3)注意

判斷string物件是否為空

empty()函式判斷string物件是否為空,返回乙個布林值

計算string物件長度

使用size()函式

標準庫型別vector

(1)使用

要使用vector,必須包含標頭檔案

(2)定義與初始化

vector《元素型別》 變數名;    

(3)操作

v.empty()

v.size()

v.push_back(t)    將乙個值新增到vector的末尾,並使vector的大小增加

v.pop_back()      刪除vector物件末尾的元素

二丶函式

1丶定義函式

(1)返回型別  函式名(引數列表)

例如int fact(int n)

(2)    函式必須指定乙個返回型別

函式返回型別可以是內建型別、復合型別或使用者自定義的類型別

如果函式不返回任何結果,將其返回型別宣告為void

2丶呼叫函式

函式名(實參列表);

例如nt main()

3丶函參傳遞

(1)按值傳遞

把實參的值複製到形參的儲存區中,即用實參值初始化形參

(2)傳引用,按引用傳遞引數

當形參是引用型別時,對應的實參被稱為按引用傳遞,或者傳引用呼叫函式

(3)傳遞方式的選擇

對於內建型別的小物件,傳值的方式更簡單直接

對於類型別的物件,盡量使用引用傳遞引數,效率更高

使用const限定可以避免實參被修改

4丶函式的呼叫

函式呼叫會使程式的控制權傳遞給被調函式,而當前活動函式的執行被掛起

5丶return語句

return語句結束當前正在執行的函式,將控制權返回給函式的呼叫者

6丶尾置返回型別的語法形式

auto 函式名(形參列表) -> 返回型別;

(二)函式過載

1丶c++函式過載機制

多個函式可以共享同乙個函式名,針對不同的引數型別提供不同的操作

2丶過載函式

如果同乙個作用域內的幾個函式名字相同但形參列表不同,則它們是過載函式

(三)作用域與儲存型別

1丶生存期,作用域與儲存型別

物件的生存期 是指程式執行過程中物件存在的時間 物件的生存期與物件的作用域和儲存類別密切相關

名字的作用域 程式的一段區域,名字的作用域指的是該名字可以在哪些程式文字區使用。

物件的儲存類別 建立物件時分配記憶體空間的方式和記憶體空間的型別

2丶全域性變數與全域性函式

在全域性作用域中可以定義函式和變數

在程式整個執行過程中都存在,可以在整個程式中使用

3丶儲存類別和儲存空間分配

分為靜態儲存 自動儲存 動態儲存

第一部分 C 語言

第一部分 c 語言 330頁 10 33天 第一章 c 與.net框架 一 net框架 cts common type system 公共型別庫 cls common language system 公共語言規範 fcl framework class library 框架型別庫 clr提供程式執行...

Axure RP 第一部分

axure rp是乙個專業的快速原型設計工具。axure 發音 ack sure 代表美國axure公司 rp則是rapid prototyping 快速原型 的縮寫。axure rp是美國axure software solution公司旗艦產品,是乙個專業的快速原型設計工具,讓負責定義需求和規格...

第一部分 初識Solr

第一章 solr簡介 這章主要包括內容 這本書講述nosql技術,apache solr 像它的非關係模式兄弟一樣,針對於某些問題進行了優化。特別的,solr在處理企業級大量資料 及時搜尋 文字資料 返回相關性結果等方面進行了很大優化。這裡說的只是冰山一角,讓我們從下面幾方面來進行詳細敘說 solr...