变量

作者: springerPrivate | 来源:发表于2017-05-09 12:38 被阅读0次

作用域(Scope):

变量的有效范围

存储类别:

静态存储方式:是指在程序运行期间分配固定的存储空间的方式。

动态存储方式:是在程序运行期间根据需要进行动态的分配存储空间的方式。

局部变量

定义在函数内部的变量称为局部变量(Local Variable)

作用域:

它的作用域仅限于函数内部,离开该函数后就是无效的,再使用就会报错

几点说明:

1) 形参变量、在函数体内定义的变量都是局部变量。实参给形参传值的过程也就是给局部变量赋值的过程。

2) 可以在不同的函数中使用相同的变量名,它们表示不同的数据,分配不同的内存,互不干扰,也不会发生混淆。

3) 在语句块中也可定义变量,它的作用域只限于当前语句块。

存储:

函数形式参数、自动变量(未加static声明的局部变量)、函数调用实的现场保护和返回地址等数据,在函数开始调用时分配动态存储空间,函数结束时释放这些空间。对自动变量来说,如果不赋初值则它的值是一个不确定的值。

静态局部变量属于静态存储类别,在静态存储区内分配存储单元。在程序整个运行期间都不释放。静态局部变量在编译时赋初值,如果在定义局部变量时不赋初值的话,编译时自动赋初值0(对数值型变量)或空字符(对字符变量)。

全局变量

在所有函数外部定义的变量称为全局变量(Global Variable)

作用域:

全局变量的作用域默认是整个程序。OC中,如果全局静态变量在.h中声明,则作用域是整个程序,如果在.m中声明,则其作用域只在该类中。

存储:

全局变量全部存放在静态存储区,在程序开始执行时给全局变量分配存储区,程序行完毕就释放。在程序执行过程中它们占据固定的存储单元,而不会动态地进行分配和释放;

在OC中,不能再.h文件中声明全局变量,但是可以声明全局静态变量。

当全局变量和局部变量同名时,在局部范围内全局变量被“屏蔽”,不再起作用。或者说,变量的使用遵循就近原则,如果在当前作用域中存在同名变量,就不会向更大的作用域中去寻找变量。

相关文章

  • mysql变量

    变量 /*系统变量:全局变量会话变量 自定义变量:用户变量局部变量 */ 一、系统变量 /*说明:变量由系统定义,...

  • mysql存储过程和函数149-169

    变量 /*系统变量:全局变量会话变量自定义变量:用户变量局部变量*/ 一、系统变量 说明:变量有系统提供,不是用户...

  • php 变量和常量

    一、变量 创建变量以 $ 开头,以 ; 结尾 可变变量从变量中解析出变量名 变量赋值 将变量b 将变量b 销毁变量...

  • Golang入门一:变量

    变量声明 变量初始化 变量赋值 变量交换 匿名变量

  • bash脚本编程-变量,变量类型

    bash变量类型: 环境变量,本地变量,位置变量,特殊变量。 本地变量: bash: VARNAME=value ...

  • MySQL(十八)变量

    系统变量:全局变量、会话变量 自定义变量:用户变量、局部变量 一、系统变量 说明:变量由系统定义,不是用户定义,属...

  • 类,变量,迭代器

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

  • Linux下的变量

    Linux下的变量 Linux变量 Linux下的变量主要分为三种:本地变量、环境变量和位置变量本地变量本地变量是...

  • 变量及检测数据类型

    变量定义var 变量名 = 变量值; 先定义在赋值var 变量名; 变量名 = 变量值; 定义多个变量var 变量...

  • Java学习笔记-1.4.2变量的分类

    变量的分类 从整体上可将变量划分为局部变量、成员变量(也称为实例变量)和静态变量 局部变量、成员变量、静态变量的区...

网友评论

      本文标题:变量

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