美文网首页
静态变量、全局变量| 实例变量(成员变量)、局部变量、全局变量的

静态变量、全局变量| 实例变量(成员变量)、局部变量、全局变量的

作者: 骑行怪状 | 来源:发表于2016-05-31 21:39 被阅读290次

静态变量static

  1. 存储在静态区;
  2. 初始化一次;
  3. 由系统管理;
  4. 生命周期为代码运行期间有效;

代码位置:

  • 可以修饰静态局部变量也可以修饰静态全局变量;
  • 作用域对应,静态局部变量在方法内有效/静态全局变量在文件内有效;

“把局部变量改变为静态变量后是改变了它的存储方式即改变了它的生存期。把全局变量改变为静态变量后是改变了它的作用域,限制了它的使用范围。”这句话的理解

在静态局部变量中,函数(oc方法)运行后,局部变量还依然存在,他的生命周期在源程序退出后才结束。如果是局部变量那么变量在函数运行完,生命周期就结束了;
在全局静态变量中,更改了其使用的作用域,仅限其在所在的 .m 文件中才能使用,超过了这个作用域将不能访问,然而全局变量,在函数中,会被程序的其他源文件访问。

成员变量(实例变量,属性)、局部变量区别

 //成员变量

@interface Person : NSObject
{
    @public
    NSString *_name;
    BOOL _sex;
}
@end

_name,_sex便是成员变量也可以成为实例变量,一般称实例变量.


//属性
@property (nonatomic,copy) NSString *name;
@property (nonatomic,assign) BOOL *sex;

该方法会自动生成_name和_sex成员变量(实例变量),name,age便是我们声明的属性。编译器将属性自动转换成了成员变量,并且自动生成了 getter 和 setter 方法。如果要对属性的成员变量进行访问需要使用 -> _name 访问。

属性和成员变量的最大的区别是,是否生成了 set 、get 方法。

//局部变量
- (void)test{
int age = 0;
age++;
NSLog(@"局部变量:%d",age);
}

作用域在方法中,age 为局部变量。

相关文章

  • php函数

    局部变量---动态变量 局部变量---静态变量 全局变量---global 全局变量---GLOBALS PHP传...

  • 2019-12-21 python变量

    python变量 全局变量 局部变量 静态变量 实例变量 https://www.imooc.com/articl...

  • Block捕获变量

    block捕获的变量 局部变量 静态局部变量 全局变量 静态全局变量 函数执行部分 总结 局部变量基本数据类型:捕...

  • 变量

    局部变量 、成员变量、全局变量 全局变量 线程不安全 public class GlobalVarManager ...

  • IOS知识点总结

    一,成员变量和属性 二,int?, long, NSInteger??? 三,全局变量,静态变量,局部变量 imp...

  • 类,变量,迭代器

    1、变量 python中实际有4种变量,分别是全局变量,类变量,实例变量,局部变量。 - 全局变量:类之外的变量,...

  • 编程中的局部变量,全局变量,静态变量

    关于局部变量、全局变量与静态全局变量和静态局部变量的比较与分析和拓展: 首先要明白的是局部变量与其它三个有本质区别...

  • C/C++知识点分享(16)

    1、statac全局变量、局部变量、函数与普通全局变量、局部变量、函数,static全局变量与普通的全局变量有什么...

  • JavaScript变量、函数和变量提升

    一.变量的作用域 变量分为全局变量和局部变量 全局变量: 局部变量:

  • Block:截获变量与__block

    截获类型 1.局部变量 (基本数据类型/对象类型) 2.静态局部变量 3.全局变量 4.静态全局变量 对于基本数据...

网友评论

      本文标题:静态变量、全局变量| 实例变量(成员变量)、局部变量、全局变量的

      本文链接:https://www.haomeiwen.com/subject/wqfhdttx.html