对于静态变量和动态变量

(1)下面拿静态全局变量和全局变量举例子,但是实际上  这对于局部变量原理是一样的

全局变量声明之前加上static,就是静态全局变量。全局变量和静态全局变量都是静态存储的;在存储上无区别。区别在于他们的作用域;全局变量的作用域是整个源程序,当源程序有多个源文件组成时,全局变量在各个源程序文件都是有效的;而静态全局变量怎被限制了作用域,只在定义该变量的源文件内有用在同一程序的其他源文件不能使用!

还有静态全局变量只初始化一次,防止在其他源文件调用!而全局变量可以再其他源文件初始化!!(2) 所以我的理解就是   静态的只能在自己的当前文件可以用,但是对于其他文件  虽然他们都在一个工程里面,但是  这个变量不能用,注意,静态变量只能声明一次,                      但是 声明或者定义的动态变量可以在同工程下的任意一个文件里面被使用。
时间: 2024-10-12 21:02:21

对于静态变量和动态变量的相关文章

Java中静态变量和动态变量

这是我面试遇到的一道题,题目如下: 1 public class StaticTest { 2 private static int b = 1; 3 private int a = 1; 4 5 public static void main(String[] args) { 6 StaticTest a1 = new StaticTest(); 7 StaticTest a2 = new StaticTest(); 8 a1.a = a1.a+1; 9 a2.a = a2.a+1; 10 S

【PHP】静态变量与动态变量的区别

动态变量和静态变量的区别: 1.存储位置动态变量:存储在内存出栈数据区静态变量:存储在全局数据区(静态数据区) 2.生命期 动态变量:根据你定义的位置确定,比如你在一个函数中定义的,那么超出该函数范围变量将失效静态变量:程序结束时才释放 3.作用域动态变量:同样的要根据你定义的位置才能确定,和第二点的一样静态变量:当前文件中有效 堆和栈的区分: 堆(Heap)栈(Stack) 1.内存分配方面: 堆:一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 .注意它与数据结构中的堆是两回

动态变量和静态变量的区别

动态变量和静态变量的区别: 1.存储位置 动态变量:存储在内存出栈数据区 静态变量:存储在全局数据区(静态数据区) 2.生命期 动态变量:根据你定义的位置确定,比如你在一个函数中定义的,那么超出该函数范围变量将失效 静态变量:程序结束时才释放 3.作用域 动态变量:同样的要根据你定义的位置才能确定,和第二点的一样 静态变量:当前文件中有效 版权声明:本文为博主原创文章,未经博主允许不得转载.

动态变量和静态变量

C语言中提供了存储说明符auto,register,extern,static说明的四种存储类别. 四种存储类别说明符有两种存储期:自动存储期和静态存储期.其中auto和register对应自动存储期.具有自动存储期的变量在进入声明该变量的程序块是被建立,它在该程序块活动时存在,退出该程序块时撤销.在函数内部定义的变量成为局部变量. 在某些C语言教材中,局部变量称为自动变量,这就与使用可选关键字a u t o定义局部变量这一作法保持一致.局部变量仅由其被定义的模块内部的语句所访问.换言之,局部变

c#静态变量和非静态变量的区别

静态变量的类型说明符是static.静态变量当然是属于静态存储方式,但是属于静态存储方式的量不一定就是静态变量,例如外部变量虽属于静态存储方式,但不一定是静态变量,必须由 static加以定义后才能成为静态外部变量,或称静态全局变量. 详解: 一,静态资源在首次访问时会调用静态构造器创建类类型对象(静态属于类,动态属于对象,静态被静态构造器创建,动态被普通构造创建,所以实例对象的时候,静态不会被重新构造), 二,类型对象的生存周期是整个应用程序域的生存周期,也就说被访问过的静态资源,只有它所在的

单例模式与静态变量在PHP中 (转载)

在PHP中,没有普遍意义上的静态变量.与Java.C++不同,PHP中的静态变量的存活周期仅仅是每次PHP的会话周期,所以注定了不会有Java或者C++那种静态变量. 所以,在PHP中,静态变量的存在意义仅仅是在某个结构体中(方法或者类)中传递一个变量,其作用域在此文件内. 看个例子好了 function test(){ static $var = 1; echo $var++.'<br />'; } test(); test(); test(); //OutPut //1 //2 //3 在

报错!无法从静态上下文中引用非静态 变量

1 import java.awt.Point; 2 class rectangle 3 { int x1=0; 4 int y1=0; 5 int x2=0; 6 int y2=0; 7 8 rectangle point(int x,int y,int z,int w) 9 {x1= x; 10 y1= y; 11 x2= z; 12 y2= w; 13 return this; 14 } 15 16 public static void main(String[] args) 17 18

[转]单例模式与静态变量在PHP中

在PHP中,没有普遍意义上的静态变量.与Java.C++不同,PHP中的静态变量的存活周期仅仅是每次PHP的会话周期,所以注定了不会有Java或者C++那种静态变量. 所以,在PHP中,静态变量的存在意义仅仅是在某个结构体中(方法或者类)中传递一个变量,其作用域在此文件内. 看个例子好了 1 2 3 4 5 6 7 8 9 10 11 function test(){ static $var = 1; echo $var++.'<br />'; } test(); test(); test()

比较全局变量、全局静态变量、局部变量、局部静态变量的区别

比较全局变量.全局静态变量.局部变量.局部静态变量的区别,他们在编译完后存储位置在什么地方.初始化值在什么地方.内存什么时候分配.赋初值对这些变量有哪些影响等.要弄清楚这些问题,首先要弄清楚下面几个知识点. C语言分下面几个存储区: 1.栈区(stack) 由编译器在需要的时候自动分配释放,在不需要的时候就自动清除的变量存储区.通常存放的变量是函数的参数值.局部变量的值等,其操作方式类似于数据结构中的栈. 2.堆区(heap) 一般由程序员去分配释放,和编译器完全没有关系,直接由我们的应用程序去