deine const 等關鍵字區別

2022-07-17 14:30:16 字數 1100 閱讀 7824

define

屬於預編譯指令,在程式執行之前就已經編譯好;額,定義變數,沒有型別資訊,

const

修飾的變數是不可變的,只是給出了記憶體位址,且只在程式執行時初始化開闢一塊記憶體空間

const 只修飾右邊部分 右邊部分表示唯讀

int

const *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可以訪問基類的公有成員和受保護成員,私有成...