static, extern, const區(qū)別

5個(gè)修飾關(guān)鍵字

static

a. 修飾局部變量: 把這個(gè)局部變量變?yōu)殪o態(tài)變量, 程序啟動(dòng)就加載, 程序退出才收回

eg. static int num = 10; //初始化語(yǔ)句, 只執(zhí)行一次

局部變量指: 只定義在某個(gè)函數(shù)內(nèi)

b. 修飾全局變量: 代表這個(gè)全局變量只能在本文件中訪問(wèn)

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

c. 修飾函數(shù): 代表這個(gè)函數(shù)只能在本文件中訪問(wèn)

extern

a. 不能修飾局部變量

b. 修飾全局變量: 代表這個(gè)全局變量可在所有文件中訪問(wèn)

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

auto

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

b. 代表這個(gè)變量讓系統(tǒng)自動(dòng)管理, 什么時(shí)候該回收就回收

register

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

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

volatile

a. 易變的, 不穩(wěn)定的, 說(shuō)明變量在程序執(zhí)行中可被隱含的改變

const修飾符 不可以修改

a. 修飾變量, 修飾誰(shuí), 誰(shuí)就不可以修改

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://m.itdecent.cn/p/2fd58ed2cf55? const,static,extern的區(qū)別 詳細(xì)

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

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

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

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

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