命名空間
//定義命名空間
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語言不支援。相同作用域...