局部變量
- 寫在函數或者代碼塊中的變量,我們稱之為局部變量
- 作用域:從定義的那一行開始,一直到遇到大括號或者return
- 局部變量可以先定義在初始化,也可以定義的同時初始化
- 存儲:棧
- 存儲在棧中的數據有一個特點,系統會自動給我們釋放
全局變量
- 寫在函數和大括號外部的變量,我們稱之為全局變量
- 作用域:從定義的那一行開始,一直到文件末尾
- 全局變量可以先定義在初始化,也可以定義的同時初始化
- 存儲:靜態區
- 程序一啟動就會分配存儲空間,直到程序結束才會釋放
成員變量
- 寫在類聲明的大括號中的變量,我們稱之為 成員變量(屬性,實例變量)
- 成員變量只能通過對象來訪問
- 注意:成員變量不能離開類,離開類之后就不是成員變量了,成員變量不能在定義的同時進行初始化
- 存儲:堆(當前對象對應的堆的存儲空間中)
- 存儲在堆中的數據,不會被自動釋放,只能程序員手動釋放
//
// main.m
// 局部變量和全局變量以及成員變量的區別
//
// Created by wenjim on 17/8/28.
// Copyright 2017年 WenJim. All rights reserved.
//
#import <Foundation/Foundation.h>
@interface Person : NSObject
{
// 寫在類聲明的大括號中的變量,我們稱之為 成員變量(屬性,實例變量)
// 成員變量只能通過對象來訪問
// 注意:成員變量不能離開類,離開類之后就不是成員變量了, \
成員變量不能在定義的同時進行初始化
// 存儲:堆(當前對象對應的堆的存儲空間中)
// 存儲在堆中的數據,不會被自動釋放,只能程序員手動釋放
int age;
}
@end
@implementation Person
@end
// 寫在函數和大括號外部的變量,我們稱之為全局變量
// 作用域:從定義的那一行開始,一直到文件末尾
// 全局變量可以先定義在初始化,也可以定義的同時初始化
// 存儲:靜態區
// 程序一啟動就會分配存儲空間,直到程序結束才會釋放
int a;
int b = 10;
int main(int argc, const char * argv[]) {
// 成員變量
Person * p = [Person new];
p.age = 20;
// 寫在函數或者代碼塊中的變量,我們稱之為局部變量
// 作用域:從定義的那一行開始,一直到遇到大括號或者return
// 局部變量可以先定義在初始化,也可以定義的同時初始化
// 存儲:棧
// 存儲在棧中的數據有一個特點,系統會自動給我們釋放
int num = 10;
{
int Value;
}
return 0;
}
最后編輯于 :
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。