const:c語音關(guān)鍵字 是一個修飾符? 被const修飾后就意味著"只讀"不能被修改 .當用字符串常量時,蘋果官方推薦使用const.
const int a;
int const a;
const int *a;
int * const a;
int const * a const;
const定義的右邊的是不可以改變的,也就是說const修飾的是它右邊的部分。
前兩個的作用是一樣,a是一個常整型數(shù)。
第三個意味著a是一個指向常整型數(shù)的指針(也就是,指向的整型數(shù)是不可修改的,但指針可以,此最常見于函數(shù)的參數(shù),當你只引用傳進來指針所指向的值時應該加上const修飾符,程序中修改編譯就不通過,可以減少程序的bug)。
第四個意思a是一個指向整型數(shù)的常指針(也就是說,指針指向的整型數(shù)是可以修改的,但指針是不可修改的)。
最后一個意味著a是一個指向常整型數(shù)的常指針(也就是說,指針指向的整型數(shù)是不可修改的,同時指針也是不可修改的)。
一:宏的常見用法:
1:常用的字符串常量抽成宏
2:常用的代碼塊抽成宏
const的用法:
當用字符串常量的時候,蘋果官方推薦使用const
區(qū)別:
1:編譯時刻:宏:預編譯(xcode剛到有#就會預編譯);const:編譯時刻
2:編譯檢查:宏:編譯時不會檢查;const:編譯是會檢查
3:宏的好處:可以定義代碼
4:宏的壞處:編譯時間過長,因此建議常用的字符串常量用const修飾
二:static的作用:
1:修飾 局部變量:
延長這個局部變量的生命周期,只要程序運行,局部變量就會一直存在
局部變量只會分配一次內(nèi)存,因為用static修飾的代碼只會在程序一啟動就會執(zhí)行,以后就不會執(zhí)行
2:修飾全局變量:
只會修飾全局變量的 作用域,表示只會在是當前文件內(nèi)使用。