static, extern, const區別

5個修飾關鍵字

static

a. 修飾局部變量: 把這個局部變量變為靜態變量, 程序啟動就加載, 程序退出才收回

eg. static int num = 10; //初始化語句, 只執行一次

局部變量指: 只定義在某個函數內

b. 修飾全局變量: 代表這個全局變量只能在本文件中訪問

全局變量指: 定義在#import 與 @interface 類名 () 之間

c. 修飾函數: 代表這個函數只能在本文件中訪問

extern

a. 不能修飾局部變量

b. 修飾全局變量: 代表這個全局變量可在所有文件中訪問

c. 修飾函數: 代表這個函數可在所有文件中訪問 (如果函數前沒有加修飾符, 則默認是extern)

auto

a. 只能修飾局部變量(局部變量默認就是auto)

b. 代表這個變量讓系統自動管理, 什么時候該回收就回收

register

a. 只能修飾局部變量, 且不能用取地址符&

b. 代表把這個局部變量盡可能添加到寄存器存儲 (寄存器容量小, 存儲有限)

volatile

a. 易變的, 不穩定的, 說明變量在程序執行中可被隱含的改變

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.lxweimin.com/p/2fd58ed2cf55? const,static,extern的區別 詳細

2)? http://www.lxweimin.com/p/3fa703e80720 const,static,extern的區別 粗略

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • static 修飾局部變量 讓局部變量只初始化一次 局部變量在程序中只有一份內存 并不會改變局部變量的作用域,僅僅...
    大沖哥閱讀 1,389評論 0 1
  • ### const,static,extern簡介 ### 一、const與宏的區別(面試題): * `const...
    老騷鵝閱讀 668評論 0 7
  • const,static,extern簡介一、const與宏的區別(面試題):const簡介:之前常用的字符串常量...
    BinaryRo閱讀 258評論 0 1
  • 一、const與宏的區別: const簡介:之前常用的字符串常量,一般是抽成宏,但是蘋果不推薦我們抽成宏,推薦我們...
    金約21依代閱讀 231評論 0 1
  • 一、const與宏的區別(面試題): const簡介:之前常用的字符串常量,一般是抽成宏,但是蘋果不推薦我們抽成宏...
    Lucky丶晴閱讀 213評論 0 1