c语言static局部变量
答:1、static变量存放在静态存储区,在程序整个运行期间都不释放;而auto变量存放在动态存储区,随着生命周期的结束而立即释放。2、static变量只赋值一次,以后就不用赋值;而auto变量在函数每调用一次都要赋初值。3、如果用户不对static变量赋初值,则默认为0或'\0';而auto变量为不确定值。
答:有两种用法:1、static修饰局部变量,成为一个局部静态变量。static修饰局部变量(静态局部变量)与普通局部变量相比,它的优势在于:①静态局部变量作用域与连接属性与普通局部变量一样;②存储类:静态局部变量分配在data/bss段,普通局部变量在栈上;③生命周期:因为存储类的不同,静态局部变量的生命周期得...
答:1、全局变量,包括静态全局变量,和非静态全局变量,在没有初始化值时,其值自动为0.即定义在所有函数外,不归属于任何一个函数的,在没有初始化值时,自动为0。2、静态局部变量。当定义在函数内的局部变量,有static 标记时,默认初始化为0值。3、非静态局部变量,无默认初始值,C标准规定初始化值...
答:C语言中的局部变量存储在栈里。普通的局部变量在栈空间上分配,这个局部变量所在的函数被多次调用时,每次调用这个局部变量在栈上的位置都不一定相同。局部变量也可以在堆上动态分配(malloc),但是记得使用完这个堆空间后要释放之。在栈空间上分配时是要注意内存的,不能分配内存过大。如果栈内空间小于...
答:在C语言中,static可以用来修饰局部变量,全局变量以及函数。在不同的情况下static的作用不尽相同。(1)修饰局部变量 一般情况下,对于局部变量是存放在栈区的,并且局部变量的生命周期在该语句块执行结束时便结束了。但是如果用static进行修饰的话,该变量便存放在静态数据区,其生命周期一直持续到整个程序...
答:C语言关键词学习总结 一、static关键字 1、局部变量 生命周期:原先存在栈中,生命周期语句执行完毕便结束了。现在存放到静态数据区,生命周期持续到整个程序执行结束。 作用域:并没有改变作用域,还是仅限于该语句块。并且只在初次运行的时候进行初始化,下次调用时它的值是上一次函数调用结束之后的值。每次调用后值会...
答:static变量 static声明的变量为“静态局部变量”,变量内容具有持久性。该局部变量的值在函数调用结束之后不会消失,而仍然保留其原值。即它所占用的存储单元不释放,在下一次调用该函数时,其局部变量的值仍然存在,也就是上一次函数调用结束时的值。return m++ 前置++是用之前就加1,用的人拿到的一定...
答:在C语言中,static关键字的作用如下:1、在修饰变量的时,static修饰的静态局部变量只执行一次,而且延长了局部变量的生命周期,直到程序运行结束以后才释放。2、static修饰全局变量的时,这个全局变量只能在本文件中访问,不能在其它文件中访问,即便是extern外部声明也不可以。3、static修饰一个函数,则这个...
答:全局变量和静态变量如果没有手工初始化,则由编译器初始化为0。局部变量的值不可知。代码如下://test.cpp include <iostream.h> extern int a;//变量声明,不是定义 static int b=5;void func1(){ cout < <b < <endl < <a < <endl;//结果为5 } //main.cpp int ...
答:C语言存储类型有四种,分别是auto, extern, register, static。1、局部变量,在没有任何修饰的情况下,存储类型为auto。即定义局部变量int a;和auto int a;是相同的。auto为缺省类型。2、静态局部变量。静态局部变量是指有static修饰的局部变量,比如 static int a;其存储类型为static。3、寄存器变量。
网友评论:
包义19788498678:
c语言中为什么要用static声明变量.它的具体作用是什么,请举例说明 -
43797方杰
: 比如你在一个函数中定义了一个i,你想在每次调用的时候,显示了共调用了多少次,而且你又不想用全局变量,那么你就要定义成static类型的.如果你实现了我说的功能,那你就可以理解static的作用了.
包义19788498678:
在C语言中怎样用static来声明局部变量要仔细的回答哦
43797方杰
:静态局部变量属于静态存储类别,在静态存储区内分配存储单元.在程序整个运行期间都不释放, 静态局部变量在编译时赋初值,即只赋初值一次.有时希望函数中的局部变量的值在函数调用结束后不消失而保留原值,这时就可以使用static变量,比如输出1到6的阶乘: #include<stdio.h> short fac(short n) { static short f=1; return f=f*n; } main() { short i=0; while(i!=6) printf("%d\t",fac(++i)); } 使函数中f的值得以保留可以省掉每次从头开始计算花费的资源.
包义19788498678:
在C语言中,怎样用static来声明局部变量??(要仔细的回答哦!!)
43797方杰
: 很简单啊.函数里面声明的static变量就是静态局部变量.比如: void fun() { static int n=0; }
包义19788498678:
c语言中什么是静态局部变量? -
43797方杰
: static 用修饰符来声明的变量叫静态变量. 这种变量和一般的变量不同.从程序开始到程序结束一直存在. 局部静态变量.是在函数内部声明的静态变量. 局部静态变量的值有一个特性,它会保存你操作的结果. 举个例子: int test(int a) {...
包义19788498678:
C语言中的静态局部变量 -
43797方杰
: 静态局部变量是为了再下一次进入其所属函数时,变量的值仍保持上一次的值.而main函数在程序的一次运行中只会运行一次,所以设置静态局部变量就没有意义了.
包义19788498678:
C语言里static是什么? -
43797方杰
: 当static用来修饰局部变量的时候,它就改变了局部变量的存储位置,从原来的栈中存放改为静态存储区.但是局部静态变量在离开作用域之后,并没有被销毁,而是仍然驻留在内存当中,直到程序结束,只不过我们不能再对他进行访问. 在函数的返回类型前加上关键字static,函数就被定义成为静态函数.只是在声明他的文件当中可见,不能被其他文件所用.
包义19788498678:
C语言用静态局部变量来实现 -
43797方杰
: #include int fuc(int x) { static int s=0; s+=x; return s; } int main() { int s,i; for(i=1;i { fuc(i); } s=fuc(0); printf("%d\n",s); return 0; } 首先可以运行看一下结果,发现结果是5050 ,即1到100的值 在函数fuc里面有个静态局部变量s 每次调用fuc 即s+=x ,s加上那个值,但是由于是静态的所以前面的值保存了下来实现了累加 最后我在main中调用fuc(0),取出在函数中的静态局部变量的值,输出,具体的N添加个输入即可 回答不易望采纳
包义19788498678:
静态变量static的作用是什么? -
43797方杰
: 一旦声明为静态变量,在编译时刻开始永远存在,不受作用域范围约束,但是如果是局部静态变量,则此静态变量只能在局部作用域内使用,超出范围不能使用,但是它确实还占用内存,还存在.
包义19788498678:
静态变量static的作用 -
43797方杰
: static关键字在C语言中用于声明一个静态的局部变量. 作用: 有时希望函数中的局部变量的值在函数调用结束后不消失而继续保留原值,即其占用的存储单元不释放,在下一次再调用该函数时,该变量已有值(就是上一次函数调用结束时的值).这时就应该指定该局部变量为“静态局部变量”,用关键字static进行声明.用静态存储要多占内存(长期占用不释放,而不能像动态存储那样一个存储单元可以先后为多个变量使用,节约内存),而且降低了程序的可读性,因此若非必要,不要多用静态局部变量.
包义19788498678:
c语言中,用static声明的局部变量有存在的意义吗 -
43797方杰
: 当然有意义了 全局变量是其他域也能访问 static 局部变量这种就不可以了 如果你说作用域无所谓,那你全部用全局变量好了,也没人拦你