define
屬於預編譯指令,在程式執行之前就已經編譯好;額,定義變數,沒有型別資訊,
const
修飾的變數是不可變的,只是給出了記憶體位址,且只在程式執行時初始化開闢一塊記憶體空間
const 只修飾右邊部分 右邊部分表示唯讀
intconst *p; //
*p:指標變數
//可以修改值,但不能修改位址
int a = 10
;
int b = 20
;
intconst *p = &a;
nslog(
@"", a, b, *p,a);
p = &b;
nslog(
@"", a, b, *p,a);
//const修飾變數
int * const p; //
p:常量
//只能修改p的位址 不能修改p 的值
intconst *p = &a;
nslog(
@"", a, b, *p,a);
*p =b;
nslog(
@"", a, b, *p,a);
extern
extern用來修飾全域性變數。extern用在變數宣告中常常有這樣乙個作用
使用如:
.h 檔案中宣告
extern nsstring * const ktttstrikeoutattributename;
.m 檔案中
nsstring * const ktttstrikeoutattributename = @"tttstrikeoutattribute";
foundation_export:
foundation_export double tttattributedlabelversionnumber;
類似define,區別在於這種方法在檢測字串的值是否相等的時候更快.對於第一種你可以直接使用(stringinstance == myfirstconstant)來比較,而define則使用的是這種.([stringinstance isequaltostring:myfirstconstant])
new關鍵字 this關鍵字 base關鍵字
使用new,所做的三件事 1.類是引用物件,引用物件是在堆中開闢空間 在堆中開闢空間 2.在開闢的堆空間中建立物件 3.呼叫物件的構建函式 4.隱藏父類成員 子類的成員可以與隱藏從父類繼承的成員,類似於重寫。public new void sayhello this關鍵字的使用 1.代表當前類的物件...
this關鍵字 static關鍵字
1.當成員變數和區域性變數重名,可以用關鍵字this來區分 this 代表物件,代表那個物件呢?當前物件 this就是所在函式所屬物件的引用 簡單說 那個物件呼叫了this所在的函式,this就代表哪個物件 this也可以用於在建構函式中呼叫其他建構函式 注意 只能定義在建構函式的第一行,因為初始化...
base關鍵字 this關鍵字
用於在派生類中實現對基類公有或者受保護成員的訪問,但是只侷限在建構函式 例項方法和例項屬性訪問器中。功能主要包括 1 呼叫基類上已被其他方法重寫的方法。2 指定建立派生類例項時應呼叫的基類建構函式。base常用於,在派生類物件初始化時和基類進行通訊。base可以訪問基類的公有成員和受保護成員,私有成...