static, extern, const區(qū)別

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ù)前沒有加修飾符, 則默認是extern)

auto

a. 只能修飾局部變量(局部變量默認就是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.itdecent.cn/p/2fd58ed2cf55? const,static,extern的區(qū)別 詳細

2)? http://www.itdecent.cn/p/3fa703e80720 const,static,extern的區(qū)別 粗略

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

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

友情鏈接更多精彩內(nèi)容