变量的属性(全局变量、局部变量、动态变量、静态变量等)

转载 2018年04月15日 17:18:25

原博主:https://blog.csdn.net/21aspnet/article/details/2560072

变量的属性 

1、变量的分类

l         根据作用域:可分为全局变量和局部变量。

l           根据生存周期:可分为静态存储方式和动态存储方式,具体地又分为自动的(auto)、静态的(static)、寄存器的(register)、外部的(extern)。

静态存储方式是指在程序运行期间分配固定的存储空间的方式,动态存储方式是在程序运行期间根据需要进行动态的分配存储空间的方式

 

2、变量的作用域和存储类别的关系

每一个变量均有作用域存储类别两个属性这些属性共同用于描述一个变量,这些不同类型的变量与存储位置的关系如下:

l          外部变量(全局变量)、静态外部变量、静态局部变量存储在静态存储区。

l          自动局部变量(局部变量默认为自动局部变量)、函数形参存储在动态存储区(即栈区)

l          不论是静态存储区还是动态存储区均属于内存中的用户区。

l          而寄存器变量是存储在CPU寄存器中的而不是内存中。

 

3、与作用域相关的几个属性:

l          局部变量:在一个函数内部定义的变量是内部变量,它只在本函数范围内有效,也就是说只有在本函数内才能使用它们,在此函数以外是不能使用这些变量的,这种类型的变量就称为局部变量

l          全局变量:在函数外定义的变量,可以为本源文件中其它函数所公用,有效范围为从定义变量的位置开始到本源文件结束,这种类型的变量就称为全局变量

 

4、与存储类型相关的几个属性:

l          atuo在声明局部变量时,若不指定 static,默认均是 auto,这类变量都是动态分配存储空间的,数据存储在动态存储区中。

l         static在声明局部变量时,使用关键字 static 将局部变量指定为静态局部变量,这样在函数调用结束后不消失而保留原值,即占用的存储单元不释放,在下一次函数调用时,该变量已有值就是上次函数调用结束时的值。

l          register在声明动态局部变量或者函数形参时,可将变量声明为register这样编译系统就会为变量分配一个寄存器而不是内存空间,通过这种方式可提升对某些局部变量频繁调用的程序的性能。寄存器运算速度远高于内存

l          extern:用于扩展全局变量的作用域。

1)         比如如果函数想引用一个外部变量,但该外部变量在该函数后定义,那么这个函数需要使用 extern来声明变量,这样才能使用在该函数后面定义的全局变量。

2)         此外,extern 还可以在多文件的程序中声明外部变量。


征服Node.js 7.x视频课程(3):基础知识

本课程主要介绍了Node.js中console对象方法的使用、常用命令以及如何调试Node.js脚本。
  • 2017年04月18日 15:40

c++中全局变量,全局静态变量,局部静态变量,局部变量的作用域和生命周期

转载地址:http://blog.csdn.net/yunyun1886358/article/details/5632087   今天在论坛上看到有朋友发帖问道:既然静态全局变量与全局变量都存储在...
  • mingzhentanwo
  • mingzhentanwo
  • 2015-02-05 10:17:50
  • 3052

深入浅出理解局部、全局、静态、动态、外部变量

1、全部变量、局部变量 局部变量:定义在函数内部的变量,作用域为函数内部 eg: void fun(){ int x;} 全部变量:只能定义一次,多次引用。作用域为整个文件。 ...
  • paulery2012
  • paulery2012
  • 2014-09-25 11:24:55
  • 1712

Swift基础语法: 27 - Swift的全局变量和局部变量, 类型属性, 获取和设置类型属性的值

Swift的全局变量和局部变量, 类型属性, 获取和设置类型属性的值
  • qq350116542
  • qq350116542
  • 2015-03-17 23:20:45
  • 1840

全局变量、局部变量、静态全局变量、静态局部变量在内存里的区别

一、程序的内存分配 一个由C/C++编译的程序占用的内存分为以下几个部分: 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。 2、...
  • jiazhen
  • jiazhen
  • 2015-04-21 14:06:56
  • 5089

解释局部变量、全局变量和静态变量的含义

  • songgl
  • songgl
  • 2007-10-10 09:56:00
  • 4995

局部变量、全局变量和静态变量的含义

(1)局部变量       在一个函数内部定义的变量是内部变量,它只在本函数范围内有效,也就是说只有在本函数内才能使用它们,在此函数以外时不能使用这些变量的,它们称为局部变量.   1.主函数main...
  • shuaishuai80
  • shuaishuai80
  • 2011-01-18 17:15:00
  • 7117

局部变量全局变量和动态分配的数据分别在内存中存放的位置

局部变量分配的内存在栈里:栈大小与编译器有关。默认情况下,visual studio 2010 的栈大小为1M。 全局变量存放在静态存储区:对于全局变量来说,与编译器有关,默认情况下, VS201...
  • qq_16209077
  • qq_16209077
  • 2016-02-28 20:31:06
  • 15500

static 变量 作用域 全局变量 局部变量 外部变量 常量 volatile变量

static 变量 作用域 全局变量 局部变量 外部变量 常量 volatile变量 2人收藏此文章, 我要收藏发表于2年前 , 已有1077次阅读 共2个评论 作用域...
  • bailyzheng
  • bailyzheng
  • 2012-06-25 21:24:39
  • 1928

全局变量,静态局部变量,局部变量空间的堆分配和栈分配

这道题主要考察的知识点是 :全局变量,静态局部变量,局部变量空间的堆分配和栈分配其中全局变量和静态局部变量时从 静态存储区中划分的空间, 二者的区别在于作用域的不同,全局变量作用域大于静态局部变量(...
  • lgfun
  • lgfun
  • 2016-09-01 13:00:35
  • 793
收藏助手
不良信息举报
您举报文章:变量的属性(全局变量、局部变量、动态变量、静态变量等)
举报原因:
原因补充:

(最多只允许输入30个字)