pragma mark 局部变量和全局变量以及成员变量的区别
pragma mark 概念
/**
#warning 成员变量 (拥有了类 才会有了成员变量)
存储: 堆 (当前对象对应的堆的存储空间中)
存储在堆中的数据, 不会被自动释放,只能程序员 手动释放
*/
/**
#warning 全局变量 (定义在函数外面 称为 全局变量)
存储 : 静态区
程序一启动 就会分配存储空间, 知道程序结束才会释放
*/
/**
#warning 局部变量 (有代码块,在代码块声明变量就是局部变量)
存储 : 栈
存储在栈中的数据 有一个特点, 系统会自动给我们释放
*/
pragma mark 代码
#import <Foundation/Foundation.h>
@interface Person : NSObject
{
// 写在类的声明的大括号中的变量,我们称之为 成员变量 (属性, 实例变量)
// 成员变量 只能通过 对象来访问
// 注意: 成员变量不能离开类, 离开类之后就 不是 成员变量 \
成员变量不能定义的同时进行初始化
// 存储: 堆 (当前对象对应的堆的存储空间中)
// 存储在堆中的数据, 不会被自动释放,只能程序员 手动释放
int age;
}
@end
@implementation Person
@end
// 写在函数和大括号外部的变量, 我们称之为 全局变量
// 作用域 : 从定义的那一行开始, 一直到文件末尾
// 局部变量 可以先定义 再 初始化, 也可以定义的 同时初始化
// 存储 : 静态区
// 程序一启动 就会分配存储空间, 知道程序结束才会释放
int a;
int b = 24;
int main(int argc, const char * argv[])
{
// 写在函数或者 代码块的变量, 我们称之为 局部变量
// 作用域 : 从定义的那一行开始, 一直遇到大括号或者 return
// 局部变量 可以 先定义 再初始化 , 也可以定义的同时初始化
// 存储 : 栈
// 存储在栈中的数据 有一个特点, 系统会自动给我们释放
int num;
{
int value;
}
return 0;
}