c语言静态变量的特点
答:在C语言中,对变量的存储类型说明有以下四种:1、auto 自动变量 2、register 寄存器变量 3、extern 外部变量 4、static 静态变量 所谓存储类型是指变量占用内存空间的方式,也称为存储方式。变量的存储方式可分为“静态存储”和“动态存储”两种。1、静态存储变量通常是在变量定义时就在存储单元并...
答:static在c语言中是私有、静态意思。用于在函数中声明“静态变量”用,在每一次调用后,该变量并不在函数返回时立即释放,变量中保存的值,可以保留到下一次调用时继续有效。私有就是隐藏。static函数只能声明后的本文中调用。static全局变量只能声明后的本文中调用。static局部变量只能声明后的本函数调用 静态...
答:一、作用不同 1、static int :加上static关键字,这样声明的成员就叫做静态成员,用于定义静态的int型变量。2、int:是用于定义整数类型变量的标识符。二、特点不同 1、static int :存在不依赖与于任何类对象的存在,类的静态数据成员应该在代码中被显式地初始化 2、int:int占用4字节,32比特,...
答:静态变量就是程序在执行前就已经可以确定的地址的变量。普通变量则是在程序执行后才分配的地址的变量。所以静态变量对整个程序都是可见的,普通变量只能被给其分配地址的模块使用,超出这个模块普通变量的生命周期结束。
答:静态变量,就是在定义的时候,有static 修饰的变量,形式为 static TYPE var_name = init_value;而动态变量,形式为 TYPE var_name = init_value;即没有static 修饰。其中的=init_value均可省略。区分定义在函数外的全局变量,和函数内的局部变量,作用域,生命周期,及无显式初始化时的初始值,均...
答:生命周期不同:1、动态变量生命周期仅为函数执行时间周期,该函数调用结束,变量销毁;2、静态变量生命周期延长到整个程序执行结束(不是该函数调用结束,是main函数结束),本次函数调用结束,变量不销毁,再次调用该函数 该变量保留上一次的值。
答:用static声明的变量是静态变量,比如static int a =4;这个a的初始值为4(仅仅是初始值),并且这个变量是一直存在的。几个a并不是同一个a,我们可以把程序中的a改一下名字,方便理解。如下:include <stdio.h>int fun(int n){static int a =3;int t =0;if(n%2){static int b =4;t+=...
答:c语言的static变量是在程序加载的时候就为之分配内存的,一直到程序结束,而不像普通变量那样函数执行一次分配一次。所以当第一次执行p(1)的时候,y已经加1了,下次执行p(2)时,y不会恢复成1,还是2;你就当全局变量的功能处理就行,性能上有区别 ...
答:有两种用法:1、static修饰局部变量,成为一个局部静态变量。static修饰局部变量(静态局部变量)与普通局部变量相比,它的优势在于:①静态局部变量作用域与连接属性与普通局部变量一样;②存储类:静态局部变量分配在data/bss段,普通局部变量在栈上;③生命周期:因为存储类的不同,静态局部变量的生命周期...
答:1)内存中的位置:静态存储区(静态存储区在整个程序运行期间都存在)2)初始化:未经初始化的全局静态变量会被程序自动初始化为0(自动对象的值是任意的,除非他被显示初始化)3)作用域:全局静态变量在声明他的文件之外是不可见的。准确地讲从定义之处开始到文件结尾。定义全局静态变量的好处:<1>不...
网友评论:
莘宜15510103052:
c语言中静态变量与动态变量的不同? -
2289诸录
: 动态变量在每次函数调用之后会把变量销毁,下次调用时就是另一个了. 静态的不会销毁,下次调用时还是那个.比如: void a(){ static int i=0; i++; } void b(){int i=0; i++; } 这个你调用两次a i就变成2了 不管你调用多少次b i都是1.
莘宜15510103052:
1.33 C语言,静态变量的特点是什么呢,static int m=0和直接int m=0有什么区别 -
2289诸录
: 有区别,static int m=0:m的值不会变,而 int m=0的值会随着条件的变化而变化.
莘宜15510103052:
C语言静态存储(static)类别的特点 -
2289诸录
: 就像:fun(int a) { static int i = 0; i++; return a+i; }第1次调用的时候i++后返回a+i,这时i值是1;第2次调用的时候i++后返回a+i,这时i值就变成2了
莘宜15510103052:
C语言中一个关于静态变量的问题
2289诸录
: 关于这个问题,你要记住静态变量的特点:1.定义时的初值赋值只执行初始一次;2.它的值是在静态区分配的,再次执行时它值并不消失;这不很简单,它的值再次执行都是存在的;而局部变量(自动变量)就不同了,每次重新分配,重新初始;上面程序中,主程序中的m是局部变量,栈中分配的;子程序中m是静态变量,静态区分配的,这两个m是不同的变量.
莘宜15510103052:
static有什么用途 -
2289诸录
: 答:在C语言中,static主要定义全局静态变量,定义局部静态变量,定义静态函数 一、 定义全局静态变量 :在全局变量前面加上关键字static,该全局变量变成了全局静态变量.全局静态变量有以下特点: (1) 在全局数据区内分配内存 (2) ...
莘宜15510103052:
c语言for循环里,static变量也能保存值吗?为什么? -
2289诸录
: 在循环体内和在函数内的static变量都是静态局部变量.静态局部变量有以下特点:1.该变量在全局数据区分配内存;2.静态局部变量在程序执行到该对象的声明处时被首次初始化,即以后的函数调用不再进行初始化; 3.静态局部变量一般在声明处初始化,如果没有显式初始化,会被程序自动初始化为0;4.它始终驻留在全局数据区,直到程序运行结束.但其作用域为局部作用域,当定义它的函数或语句块结束时,其作用域随之结束;所以,在for循环类的static变量在下一次进入循环的时候,值是保存了的,为你上一次退出循环时候的值
莘宜15510103052:
怎样理解静态变量? -
2289诸录
: 静态变量(static)是相对自动变量(auto)等而言的,一旦声明为静态变量,在编译时刻开始永远存在,不受作用域范围约束,但是如果是局部静态变量,则此静态变量只能在局部作用域内使用,超出范围不能使用,但是它确实还占用内存,还存在.自动变量就是一般的变量,在C语言中auto关键字可以省略.
莘宜15510103052:
C语言动态变量和静态变量的区别? -
2289诸录
: 全局变量声明之前加上static,就是静态全局变量.全局变量和静态全局变量都是静态存储的;在存储上无区别.区别在于他们的作用域;全局变量的作用域是整个源程序,当源程序有多个源文件组成时,全局变量在各个源程序文件都是有效的;而静态全局变量怎被限制了作用域,只在定义该变量的源文件内有用在同一程序的其他源文件不能使用! 还有静态全局变量只初始化一次,防止在其他源文件调用!而全局变量可以再其他源文件初始化!
莘宜15510103052:
C语言中的静态变量到底是怎么回事?不是说static 后面变量值是不变的,直到程序结束才释放,那后面的有涉 -
2289诸录
: 静态变量的静态是指变量占用的内存地址不释放,也就是说它的地址它从头到尾一直占着,不给其他内存单元占用而已,其本身的值是可以改变的.动态的变量的话,比如调用函数体里定义的变量,在函数执行后便释放出去,把有用的地址资源贡献给其他量,释放以后如果你用指针来打印这个地址的值的话,就很有可能不是原来的值了.
莘宜15510103052:
C语言静态变量 -
2289诸录
: 静态变量就是会保存上次计算留下来的值,,而一般变量 如 你计算得到 a=1, 你关闭程序再打开, 不执行程序,直接查a的值,,它是随机的,如果是静态变量的话,a还是等于1. 这就是区别