C 命名空間 引用 內聯函式

2021-09-25 08:12:46 字數 1701 閱讀 9061

命名空間

//定義命名空間 

namespace namespacea

namespace namespacebnode;}}

//使用方法1

using namespace namespaceb:

:namespacec;

node t;

//使用方法2

using namespaceb:

:namespacec:

:node;

node t;

//使用方法3

namespaceb:

:namespacec:

:node t;

引用

引用在c++內部實現是乙個常量指標,type *const var

從使用的角度看,相當於變數的乙個別名

定義引用格式 

type &name=var;

int a=10;

int&b=a;

b是a的別名,通過操作b可以修改a

引用在某些場合可以代替指標

void

change

(int

&a,int

&b)int

main()

複雜資料型別的引用

typedef

struct

node;

node t;

下面兩個函式效果相同

void

print

(node *t)

void

print

(node &t)

int a=10;

int&b=a;

此時a和b的位址相同

普通引用有自己的記憶體空間

struct node

; 通過sizeof

(node)發現c和d各佔四個位元組

常引用,當其傳遞給函式時,使其擁有唯讀屬性

int x=10;

const

int&y=x;

//此時不能通過y去修改x

常引用的初始化分為兩種情況(1

)用變數初始化常引用

int x=10;

const

int&y=x;(2

)用字面量初始化常引用

const

int a=10;

//放入符號表

const

int&b=20;

//c++編譯器會給它分配記憶體

內聯函式

內聯函式不可以做函式原型

c++編譯器將內聯函式直接插入在函式呼叫的地方

內聯函式是對編譯器的一種請求,有可能被拒絕

內聯函式內部不可以有任何形式的迴圈和過多的判斷

內聯函式省去了壓棧、跳轉和返回的開銷

inline

void

print()

intmain()

內聯函式和巨集定義的區別

#define max(a, b) ((a)>(b)? (a): (b))

inline

intmax

(a, b)

intmain()

C 命名空間 函式過載 引用 內聯函式

c 關鍵字 c 98 有63個 命名空間解決了 名字衝突,有作用域的作用 命名空間的使用格式 namespace n1使用方法 1.n1 變數 2.using n1 變數 3.using namespace n1 c 的輸入輸出 標頭檔案 iostream 命名空間 using namespace ...

C 筆記 函式過載 引用 命名空間

引用 引用在定義時必須初始化 乙個變數可以有多個引用 引用一旦引用乙個實體,再不能引用其他實體 int a 10 int ra a cout a a cout ra ra endl ra 20函式 函式過載 函式過載 是函式的一種特殊情況,c 允許在同一作用域中宣告幾個功能類似的同名函式,這些同名函...

C 函式過載 引用 內聯函式

2 函式過載 3 引用 4 內聯函式 在宣告或定義函式時,給函式的引數設定乙個預設值,當使用者對函式進行呼叫時,如果傳遞了實參,則使用使用者傳遞的實參 如果沒有傳遞則使用預設值。預設引數必須從右往左給出 不能在函式宣告和定義的位置同時給出 預設引數在提供時 常量 全域性變數 c語言不支援。相同作用域...