5個修飾關(guān)鍵字
static
a. 修飾局部變量: 把這個局部變量變?yōu)殪o態(tài)變量, 程序啟動就加載, 程序退出才收回
eg. static int num = 10; //初始化語句, 只執(zhí)行一次
局部變量指: 只定義在某個函數(shù)內(nèi)
b. 修飾全局變量: 代表這個全局變量只能在本文件中訪問
全局變量指: 定義在#import 與 @interface 類名 () 之間
c. 修飾函數(shù): 代表這個函數(shù)只能在本文件中訪問
extern
a. 不能修飾局部變量
b. 修飾全局變量: 代表這個全局變量可在所有文件中訪問
c. 修飾函數(shù): 代表這個函數(shù)可在所有文件中訪問 (如果函數(shù)前沒有加修飾符, 則默認(rèn)是extern)
auto
a. 只能修飾局部變量(局部變量默認(rèn)就是auto)
b. 代表這個變量讓系統(tǒng)自動管理, 什么時候該回收就回收
register
a. 只能修飾局部變量, 且不能用取地址符&
b. 代表把這個局部變量盡可能添加到寄存器存儲 (寄存器容量小, 存儲有限)
volatile
a. 易變的, 不穩(wěn)定的, 說明變量在程序執(zhí)行中可被隱含的改變
const修飾符 不可以修改
a. 修飾變量, 修飾誰, 誰就不可以修改
eg.? const int a=10; //a不能改, 只讀
int const *m; //m可以改, *m不能改
int *const n;? //n不能改, *n可以改
const int *p; //p可以改, *p不可以改
const int *const q; //q不能改, *q也不能改
參考資料:
1)? http://www.reibang.com/p/2fd58ed2cf55? const,static,extern的區(qū)別 詳細(xì)
2)? http://www.reibang.com/p/3fa703e80720 const,static,extern的區(qū)別 粗略