静态变量存放在哪里 java java静态变量存储在哪个区_局部变量


C++register寄存器变量

变量除了数据类型以外,还有3种属性:

  • 存储类别,C++允许使用auto,static,register和extern4种存储类别。
  • 作用域,指程序中可以引用该变量的区域。
  • 存储期,指变量在内存的存储期限。

auto, static和register3种存储类别只能用于变量的定义语句中。


auto char character1;//字符型自动变量,在函数内定义
static int number1;//静态局部整型变量
register int number2;//整型寄存器变量,在函数内定义
extern int  number3;//声明一个已定义的外部整型变量


从作用域角度分,有局部变量和全局变量。

局部变量

  • 自动变量,,即动态局部变量
  • 动态局部变量
  • 寄存器变量
  • 形式参数

全局变量

  • 静态外部变量
  • 外部变量

从变量存储期来区分,有动态存储和静态存储两种类型

动态存储

  • 自动变量
  • 寄存器变量
  • 形式参数

静态存储

  • 静态局部变量
  • 静态外部变量
  • 外部变量

从变量值存放的位置来区分,可分为

内存中静态存储区

  • 静态局部变量
  • 静态外部变量
  • 外部变量

内存中动态存储区,自动变量和形式参数 。

CPU 中的寄存器,寄存器变量。

C++中一个函数一般由:声明部分、执行语句两部分组成,声明部分的作用是对有关的标识符的属性进行说明,对于函数,声明和定义的区别是明显的,函数的声明是函数的原型,而函数的定义是函数功能的确立。

对函数的声明是可以放在声明部分中的,而函数的定义显然不在函数的声明部分范围内,它是一个文件中 的独立模块。

对变量而言,声明与定义的关系稍微复杂一些。在声明部分出现的变量有两种情况:一种是需要建立存储空间的;另一种是不需要建立存储空间的。

经典案例:C++输出各种变量。

源码分析:


#include<iostream>//头文件 
using namespace std;//命名空间 
int main()//主函数 
{
  auto int num1=1;
  static int num2=2; 
  register int num3=3;
  cout<<num1<<endl;
  cout<<num2<<endl;
  cout<<num3<<endl;
  return 0;//函数返回值为0 
}


编译后的结果:


1
2
3

--------------------------------
Process exited after 1.476 seconds with return value 0
请按任意键继续. . .


5.8 C++变量总结mp.weixin.qq.com

静态变量存放在哪里 java java静态变量存储在哪个区_局部变量_02