c语言中,静态局部变量和静态全局变量的值,在函数调用结束后都保留原值吗?
这个题考的就是静态变量,它有个自动变量不具备特点的就是数值在调用结束后,其固有的值并不改变,且被带到下一次调用中去。不像自动变量在下次调用又被重新初始化了。因此,本题第一次y=2后下次调用函数时y是从2开始而不是初始化的1。北境漫步2023-06-12 07:18:272
C++ 一个含有静态全局变量的头文件被包含多次
你定义的静态变量是s,sig是什么?再也不做站长了2023-06-08 07:30:263
为什么定义的静态全局变量用在函数里和在函数里定义定义的静态局部变量输出的值不一样啊? 谢谢了!!!
for(int k=0; k<10; k++) { fun1(); //调用fun1() i每次自增1,所以一直加到10 fun2(); //每次进入fun2,j被赋为0,所以最后为1 }大鱼炖火锅2023-06-08 07:27:445
静态全局变量赋值后怎么还是0
除非别的函数和什么地方又用到 全局变量,改变了它的值。例如:#include <stdio.h>#include <stdlib.h>static int x=6;void set_x(int v){ x=v;};void main(){printf("%d ",x);set_x(5) ;printf("%d ",x);set_x(0) ;printf("%d ",x);}meira2023-06-08 07:27:362
如何引用一个已定义的静态全局变量?
直接使用变量名就可以了(必要时应进行声明,静态全局变量只能在本文件中使用)hi投2023-06-08 07:27:353
VBA静态全局变量在哪定义 怎么定义
声明全局变量可以在文档任何位置(For循环、If判断内除外)。比如:Option ExplicitPublic a As StringSub aa()a = "public"MsgBox aEnd Sub以上代码可执行。--------------------------------Option ExplicitPublic a As StringSub aa()a = "public"MsgBox aDim i As SingleFor i = 1 To 6Public b As Singleb = iMsgBox bNextEnd Sub以上代码提示:编译错误:Sub 或 Function 中的属性无效以上。现在VBA基本只是excel还在用,其它的编程基本都不用它了,如果你以后打算走编程的话希望多学习下其它的语言黑桃花2023-06-08 07:27:331
静态全局变量的作用域
只在本文件中有效kikcik2023-06-08 07:27:334
c语言 为什么静态全局变量可以在别的文件中引用
你弄错了 你把你代码贴上来苏萦2023-06-08 07:27:313
.net静态全局变量设置问题!
在关闭时响应变量=="";北境漫步2023-06-08 07:27:293
静态局部变量和普通全局变量以及静态全局变量的区别
局部变量与其它三个有本质区别。 局部变量,定义在函数内,作用域为定义位置,到所在大括号结束。 每次执行到定义语句的时候,系统为该变量分配内存,当作用域结束后,内存被释放。而另外三个,都是在系统运行时就分配内存,在运行过程中都不会释放,直到程序结束。也就是说,局部变量和其它三个,最明显的区别:1 生命周期不同2 分配时间不同3 分配位置不同。而另外三个,在这几项上是相同的,之间的区别在于作用域。全局变量,作用域为整个项目,不管在哪个文件中,只要声明后都可以使用。静态全局变量,作用域为定义改变量的所在文件。而静态局部变量,作用域与普通局部变量一样,都是定义位置到所在大括号结束。拌三丝2023-06-08 07:27:241
全局变量和静态全局变量的区别
全局变量是指在整个程序的作用域范围之内都可以使用的变量,而静态全局变量仍然是一个全局变量,但是它的值可以在多程序环境中保持不变。在绝大多数情况下全局变量和静态全局变量的差别并不大,但在多线程的情况下,全局静态变量和全局变量会有较大区别。豆豆staR2023-06-08 07:27:232
怎样将一个类的成员变量声明为静态全局变量?
让b 继承 a 就可以了LuckySXyd2023-06-08 07:27:193
全局变量,静态全局变量,静态局部变量和局部变量的区别1
局部变量与其它三个有本质区别。 局部变量,定义在函数内,作用域为定义位置,到所在大括号结束。 每次执行到定义语句的时候,系统为该变量分配内存,当作用域结束后,内存被释放。而另外三个,都是在系统运行时就分配内存,在运行过程中都不会释放,直到程序结束。也就是说,局部变量和其它三个,最明显的区别:1 生命周期不同2 分配时间不同3 分配位置不同。而另外三个,在这几项上是相同的,之间的区别在于作用域。全局变量,作用域为整个项目,不管在哪个文件中,只要声明后都可以使用。静态全局变量,作用域为定义改变量的所在文件。而静态局部变量,作用域与普通局部变量一样,都是定义位置到所在大括号结束。豆豆staR2023-06-08 07:27:172
static静态局部变量和静态全局变量的区别详解
一、静态局部变量:1、static类型的内部变量同auto自动变量(即未加 static 声明的局部变量)一样,是某个特定函数的局部变量,即只能在定义该变量的函数内使用该变量,两者作用域相同;两者的不同在于:auto自动变量会随着函数被调用和退出而存在和消失,而static类局部变量不会,它不管其所在的函数是否被调用,都将一直存在;不过,尽管该变量还继续存在,但不能使用它。倘若再次调用定义它的函数时,它又可继续使用,而且保存了前次被调用后留下的值。换言之,static类型的内部变量是一种只能在某个特定函数中使用,但一直占据存储空间的变量。2、函数体内如果在定义静态变量的同时进行了初始化,则以后程序不再进行初始化操作(出现在函数内部的基本类型的的静态变量初始化语句只有在第一次调用才执行)。而对自动变量赋初值是在函数调用时进行,每调用一次函数重新给一次初值,相当于执行一次赋值语句。3、静态局部变量的初始化表达式必须是一个常量或者常量表达式。即使局部静态变量定义时没有赋初值,系统会自动赋初值0(对数值型变量)或空字符(对字符变量);静态变量的初始值为0。而对自动变量auto来说,如果不赋初值则它的值将是个不确定的值。4、当多次调用一个函数且要求在调用之间保留某些变量的值时,可考虑采用静态局部变量。虽然用全局变量也可以达到上述目的,但全局变量有时会造成意外的副作用(主要是变量的作用域造问题成的),因此仍以采用局部静态变量为宜。注:局部静态变量占用内存时间较长,并且可读性差,因此,除非必要,尽量避免使用局部静态变量。二、静态全局变量全局变量(外部变量)的声明之前再冠以static 就构成了静态的全局变量。全局变量本身就是静态存储方式,静态全局变量当然也是静态存储方式。这两者在存储方式上并无不同。static静态局部变量和静态全局变量区别这两者的区别在于:1、非静态全局变量的作用域是整个源程序,当一个源程序由多个源文件组成时,非静态的全局变量在各个源文件中都是有效的。2、静态全局变量则限制了其作用域, 即只在定义该变量的源文件内有效,在同一源程序的其它源文件中不能使用它。从以上分析可以看出————把局部变量改变为静态变量后是改变了它的存储方式,即改变了它的生存期。把全局变量改变为静态变量后是改变了它的作用域,限制了它的使用范围。static静态变量会被放在程序的全局存储区中(即在程序的全局数据区,而不是在堆栈中分配,所以不会导致堆栈溢出),这样可以在下一次调用的时候还可以保持原来的赋值。这一点是它与堆栈变量和堆变量的区别。肖振2023-06-08 07:27:161
全局变量和静态全局变量有什么区别?
全局变量前面有没有static表明该变量是否具有外部链接,1-3楼说的很清楚了 tatng803397说的情况是类,结构或者函数内部的static变量可桃可挑2023-06-08 07:27:155
静态全局变量和全局变量有什么区别
全局变量(外部变量)的说明之前再冠以static就构成了静态的全局变量。全局变量本身就是静态存储方式,静态全局变量当然也是静态存储方式。这两者在存储方式上并无不同。这两者的区别虽在于非静态全局变量的作用域是整个源程序,当一个源程序由多个源文件组成时,非静态的全局变量在各个源文件中都是有效的。而静态全局变量则限制了其作用域,即只在定义该变量的源文件内有效,在同一源程序的其它源文件中不能使用它。由于静态全局变量的作用域局限于一个源文件内,只能为该源文件内的函数公用,因此可以避免在其它源文件中引起错误。从以上分析可以看出,把局部变量改变为静态变量后是改变了它的存储方式即改变了它的生存期。把全局变量改变为静态变量后是改变了它的作用域,限制了它的使用范围。static函数与普通函数有什么区别?只在当前源文件中使用的函数应该说明为内部函数(static),内部函数应该在当前源文件中说明和定义。对于可在当前源文件以外使用的函数,应该在一个头文件中说明,要使用这些函数的源文件要包含这个头文件。无尘剑 2023-06-08 07:27:151
静态全局变量和全局变量有什么区别
在全局变量前加一个static,使该变量只在这个源文件中可用,称之为全局静态变量,全局静态变量就是静态全局变量。1.全局变量也称为外部变量,它是在函数外部定义的变量。 它不属于哪一个函数,它属于一个源程序文件。其作用域是从定义该变量的位置开始至源文件结束。2.全局变量是在所有函数体的外部定义的,程序的所在部分(甚至其它文件中的代码)都可以使用。全局变量不受作用域的影响(也就是说,全局变量的生命期一直到程序的结束)。如果在一个文件中使用extern关键字来声明另一个文件中存在的全局变量,那么这个文件可以使用这个数据。3.在全局变量前加一个static,使该变量只在这个源文件中可用,称之为全局静态变量,全局静态变量就是静态全局变量。无尘剑 2023-06-08 07:27:145
局部变量,静态全局变量,静态局部变量的区别和联系
局部变量与其它两个有本质区别。 局部变量,定义在函数内,作用域为定义位置,到所在大括号结束。 每次执行到定义语句的时候,系统为该变量分配内存,当作用域结束后,内存被释放。而另外两个,都是在系统运行时就分配内存,在运行过程中都不会释放,直到程序结束。也就是说,局部变量和其它两个,最明显的区别:1 生命周期不同2 分配时间不同3 分配位置不同。而另外两个,在这几项上是相同的,之间的区别在于作用域。静态全局变量,作用域为定义改变量的所在文件。而静态局部变量,作用域与普通局部变量一样,都是定义位置到所在大括号结束。小菜G的建站之路2023-06-06 08:00:511