Object-C中成員變量、全局變量和局部變量的區(qū)別

一、成員變量

  • 寫在類聲明的大括號(hào)中的變量,稱之為成員變量(屬性,實(shí)例變量)
  • 成員變量只能通過(guò)對(duì)象來(lái)訪問(wèn)
  • 成員變量不能離開(kāi)類,離開(kāi)類之后就不是成員變量;成員變量不能在定義的同時(shí)進(jìn)行初始化
  • 存儲(chǔ):堆(當(dāng)前對(duì)象對(duì)應(yīng)的堆的存儲(chǔ)空間中)
  • 存儲(chǔ)在堆中的數(shù)據(jù),不會(huì)被自動(dòng)釋放,只能程序員手動(dòng)釋放
  @interface Person : NSObject
  {
      int age;
  }
  @end

  @implementation Person
  
  @end

二、全局變量

  • 寫在函數(shù)和大括號(hào)外面的變量,稱之為全局變量
  • 作用域:從定義的那一行開(kāi)始,一直到文件的末尾
  • 全局變量可以先定義在初始化,也可以定義時(shí)初始化
  • 存儲(chǔ):靜態(tài)區(qū)
  • 程序已啟動(dòng)就會(huì)分配存儲(chǔ)空間,知道程序結(jié)束才會(huì)釋放
int num;
int num1 = 20;

三、局部變量

  • 寫在函數(shù)或者代碼塊中的變量,稱之為局部變量
  • 作用域:從定義的那一行開(kāi)始,一直到遇到大括號(hào)或者return
  • 局部變量可以先定義再初始化,也可以定義的同時(shí)初始化
  • 存儲(chǔ):棧
  • 存儲(chǔ)在棧中的數(shù)據(jù)有一個(gè)特點(diǎn),系統(tǒng)會(huì)自動(dòng)給我們釋放
int main(int argc, const char * argv[])
int num = 10;
{
    int value;
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容