pragma mark 局部變量和全局變量以及成員變量的區(qū)別
pragma mark 概念
/**
#warning 成員變量 (擁有了類 才會有了成員變量)
存儲: 堆 (當前對象對應的堆的存儲空間中)
存儲在堆中的數(shù)據(jù), 不會被自動釋放,只能程序員 手動釋放
*/
/**
#warning 全局變量 (定義在函數(shù)外面 稱為 全局變量)
存儲 : 靜態(tài)區(qū)
程序一啟動 就會分配存儲空間, 知道程序結束才會釋放
*/
/**
#warning 局部變量 (有代碼塊,在代碼塊聲明變量就是局部變量)
存儲 : 棧
存儲在棧中的數(shù)據(jù) 有一個特點, 系統(tǒng)會自動給我們釋放
*/
pragma mark 代碼
#import <Foundation/Foundation.h>
@interface Person : NSObject
{
// 寫在類的聲明的大括號中的變量,我們稱之為 成員變量 (屬性, 實例變量)
// 成員變量 只能通過 對象來訪問
// 注意: 成員變量不能離開類, 離開類之后就 不是 成員變量 \
成員變量不能定義的同時進行初始化
// 存儲: 堆 (當前對象對應的堆的存儲空間中)
// 存儲在堆中的數(shù)據(jù), 不會被自動釋放,只能程序員 手動釋放
int age;
}
@end
@implementation Person
@end
// 寫在函數(shù)和大括號外部的變量, 我們稱之為 全局變量
// 作用域 : 從定義的那一行開始, 一直到文件末尾
// 局部變量 可以先定義 再 初始化, 也可以定義的 同時初始化
// 存儲 : 靜態(tài)區(qū)
// 程序一啟動 就會分配存儲空間, 知道程序結束才會釋放
int a;
int b = 24;
int main(int argc, const char * argv[])
{
// 寫在函數(shù)或者 代碼塊的變量, 我們稱之為 局部變量
// 作用域 : 從定義的那一行開始, 一直遇到大括號或者 return
// 局部變量 可以 先定義 再初始化 , 也可以定義的同時初始化
// 存儲 : 棧
// 存儲在棧中的數(shù)據(jù) 有一個特點, 系統(tǒng)會自動給我們釋放
int num;
{
int value;
}
return 0;
}
最后編輯于 :
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者