OC程序设计之静态变量和局部变量

  • 局部变量
    在方法中声明的变量称之为局部变量; 其他的方法并不能直接访问这个变量,必须通过定义这个局部变量的方法来访问;该方法被调用时局部变量才被赋值;局部变量被存放在栈内,系统自动为其申请内存空间;局部变量没有默认的初始值,使用时必须给其赋值,而且在方法执行一次过后,静态变量的的值也随其消失,在第二次调用这个方法时,赋值语句会再执行一次。
    有例有真相~下面我们举个栗子 Object-C之静态变量与局部变量
    这里我们写一个方法,用于实现分数约分功能(假设分子numerator和分母denominator已经定义过可以直接使用了哈),在方法体内定义了三个局部变量u,v,temp;这三个变量的只有在该方法内有效,换言之其他方法想要用到这个静态变量必须通过定义它的方法。对第一个分数进行约分后,第二次调用reduce方法,重新赋值。

  • 静态变量
    在变量声明前加上static关键字,就被声明为一个静态变量;静态被存放在数据区,程序运行的过程中,它一直被存放在数据区;静态变量只能被初始化一次,即静态变量的初始化语句只能被执行一次,它 的默认初始值是0;我们再来举个栗子:
    Object-C之静态变量与局部变量
    Object-C之静态变量与局部变量
    上面两种情况我们分别将pageCount声明为局部变量和静态局部变量;假如调用三次shouPage方法,pageCount为静态变量时输出情况如下: Object-C之静态变量与局部变量
    pageCount为静态局部变量时输出情况如下:
    Object-C之静态变量与局部变量
    原因在于:pageCount为局部变量的时候,方法重新被调用一次,初始化语句就重新执行一次;pageCount为静态局部变量时,不论方法被调用多少次,初始化语句只执行一次。

最后,用一张图思维导图小结一下~:
Object-C之静态变量与局部变量
以上就是小编的全部理解啦~不够精炼会多多改善哒。

相关文章:

  • 2021-11-17
  • 2021-05-29
  • 2022-12-23
  • 2021-11-17
  • 2021-11-17
  • 2021-09-10
  • 2021-11-17
猜你喜欢
  • 2021-11-26
  • 2022-12-23
  • 2021-12-26
  • 2022-12-23
  • 2022-12-23
  • 2021-12-26
相关资源
相似解决方案