C语言中的静态局部变量的定义
发布网友
发布时间:2022-03-22 08:37
我来回答
共2个回答
热心网友
时间:2022-03-22 10:07
简单跟你说说吧,静态变量是放静态区的,程序结束后OS会自动回收内存的,不用你操心。而局部变量不用我说了吧,简单理解成:在大括号中的都是局部变量,放栈区,static是静态变量的标示符。{
static int a=0,b=2;
static int sum=0,i;
};
这里的a,b,sum,i都是静态局部变量。如果你不写static的话,就是动态局部变量(默认就是动态的),或者你写auto也是动态局部变量。执行到大括号末尾的时候,这几个变量会从内存中消失的。
如果你不是写在大括号中,而是写在外面的,就是全局变量,加上static就是私有的全局变量。
其实你这个问题问得挺幼稚的。。。。
满意请采纳,谢谢追问但是我问的是:为什么变量i不是静态局部变量!
谢谢.....
追答孩子,你根本不懂我说什么.....i是不是静态局部变量是取决于它是否在函数体中或者在大括号中。你贴出来的两句代码根本条件不足,所以根本看不出 i 是不是静态局部变量。。。如果 你第2句代码在函数体中,i 就是静态局部变量。如果你第2句代码在函数体外, i 就是私有全局变量。。顺便说下, i是未初始化的。是放静态区的未初始化区的,
热心网友
时间:2022-03-22 11:25
静态局部变量是为了再下一次进入其所属函数时,变量的值仍保持上一次的值.而main函数在程序的一次运行中只会运行一次,所以设置静态局部变量就没有意义了.
C语言中的静态局部变量
静态局部变量是为了再下一次进入其所属函数时,变量的值仍保持上一次的值.而main函数在程序的一次运行中只会运行一次,所以设置静态局部变量就没有意义了.
c语言中的static是什么意思?
static在c语言中是私有、静态意思。用于在函数中声明“静态变量”用,在每一次调用后,该变量并不在函数返回时立即释放,变量中保存的值,可以保留到下一次调用时继续有效。私有就是隐藏。static函数只能声明后的本文中调用。static全局变量只能声明后的本文中调用。static局部变量只能声明后的本函数调用 静态...
c中可以声明static变量吗?
可以,static在C语言中是表示一个变量为静态变量的,而不是常量,也不是不可变的变量。所谓的静态变量有两种情况,一种是静态全局变量,一种是静态局部变量。先说静态局部变量:通常情况下,在一个函数中定义一个变量,那么函数退出之后,这个变量就消失了,即使你第二次调用这个函数,里面的变量也会被...
全局变量 与 static型的局部变量 有什么区别
静态全程变量就是指只在定义它的源文件中可见而在其它源文件中不可见的变量。它与全程变量的区别是: 全程变量可以再说明为外部变量(extern), 被其它源文件使用, 而静态全程变量却不能再被说明为外部的, 即只能被所在的源文件使用。? ?? ?? ? extern ? ? extern称为外部变量。为了使变量除了在定...
C语言中 局部变量和全局变量的概念?
局部变量也称为内部变量。局部变量是在函数内作定义说明的。其作用域仅限于函数内, 离开该函数后再使用这种变量是非法的。例如:int f1(int a) /*函数f1*/ { int b,c;……} a,b,c有效 int f2(int x) /*函数f2*/ { int y,z;……} x,y,z有效 main(){ int m,n;……}...
C语言中 自动变量 静态变量 寄存器变量 外部变量 有可比性吗?区别在哪...
c语言中变量分为四类,分别是 1.auto 自动变量 2.static 静态存贮分配变量(又分为内部静态和外部静态)3.extern 外部变量/全程变量(用于外部变量说明)4.register 寄存器变量(分配在硬件寄存器中)四大类,所有变量必须先说明(定义),后使用。下面分别介绍 1.自动变量(局部变量)局部变量...
计算机C语言中“动态变量”和“静态变量”的区别是什么?
静态变量,就是在定义的时候,有static 修饰的变量,形式为 static TYPE var_name = init_value;而动态变量,形式为 TYPE var_name = init_value;即没有static 修饰。其中的=init_value均可省略。区分定义在函数外的全局变量,和函数内的局部变量,作用域,生命周期,及无显式初始化时的初始值,均...
C语言中的全局变量和局部变量有什么区别?
C#中没有全局变量的概念,可以定义一个common类,通过静态变量来存放所有需要的全局变量,调用的时候通过common来调用即可。调用的时候使用“命名空间.common.属性名”即可,例如 string m_name = common.Name ;common.farray [0, 2] = 0.5 ;...
c语言中statuc int i=1什么意思
static int i=1; //表示定义一个静态变量i 当i是个局部变量时,表示这个变量的生存期为整体程序的运行期,就相当于是个全局变量,区别只在于,静态局部变量是在函数体内进行初始化,如上面的int i=1;这个初始化,只在函数第一次调用时进行,当第二次调用这个函数时,这一句就不会再执行了,i就...
C语言代码组成 - BSS、Data、Stack、Heap、Code、Const
即汇总下来,代码可以分为6部分组成,包括:BSS区(未初始化的全局变量/静态变量区)、Data区(实始化的全局变量区)、Stack区(栈区)、heap区(堆区)、Code区(代码区)、const区(常量区)。一、BSS区和Data区 C语言编程中定义的全局变量、静态局部变量,就是分配在全局变量/静态变量区域,但是...