1. 首页 > 科技

为什么静态变量的值会影响函数返回值?

为什么静态局部变量会导致函数的不可重入

静态变量在每次被调用其值被修改了,下次读取的初始值为上次修改的结果.如在函数中的局部静态变量static int a,初始为0.当被一个函数调用并且修改为1,则下一次被另一个函数调用是初始值这变为1.所以每次a的值都有可能发生变化.

为什么静态变量的值会影响函数返回值?

为什么函数的返回值都为1,不是定义了一个静态变量吗

这种写法是错误的.这段代码用gcc和g++都编译不过,函数的参数不可以加static.静态变量是存储在静态存储区中,而函数的参数,存储在栈上,两者存储位置都不同所以不可能混在一起.

在窗体程序中,静态变量怎样接收普通方法的返回值,静态方法里为什么不能直接用控件的值..

在窗体类里定义一个只读属性不就可以了?窗体类内部对属性赋值(当然可以通过自定义方法赋值).不就可以了吗?

static 静态变量的值能改变吗?

可以,除了const常量之外都能变

急求高手解答:静态变量保持其值,即使已经执行了它所属的函数之后也不会改变.

你好!就是说,声明一个静态的变量,在一个方法(也称函数)内,将这个静态的变量值修改后.这个值就已经改变了.因为静态变量相当于一个这个类中的全局变量.在这个类的任何一个地方修改,在另一个方法内读取到的值,就已经是新值(修改过的).我的回答你还满意吗~~

C语言中的静态变量到底是怎么回事?不是说static 后面变量值是不变的,直到程序结束才释放,那后面的有涉及到该变量的式子,该变量应如何取值?

这个问题应该从变量生存期讨论. 一般自动变量的生存期会随着函数调用的结束而结束.而静态变量函数调用结束时仍然存在,直到整个程序运行结束时才结束. 具体的内容和实例可以仔细看一下书上的详细讲解.

static int a=3,为什么最后一个返回值a=5,原来定义的数值就变了!这与static的定义不是有矛盾吗?

static存储在内存中的静态区而非一般的局部变量存储在内存中的栈中,栈中的数据由系统自动分配和释放,而静态区则会在程序结束以后由操作系统释放,所以它的数据不会因为函数的生命周期结束而清除!

为什么定义的静态全局变量用在函数里和在函数里定义定义的静态局部变量输出的值不一样啊? 谢谢了!!!

j因为先赋值为0,然后自加,所以值为1.i为10的原因:函数静态变量的内存空间只被分配一次,对函数的多次调用相当于多次作用于同一个静态变量.因为每次调用都有i++,所以函数调用10次相当于i自加10次,所以为10.

当函数局部变量用static修饰时,函数的返回值有可能发生不可预测?

你可以定义同类型的变量接收,比如有函数int add();int a;a=add();//a为返回值,当然也可以直接输出cout评论0 00

全局变量,局部变量,成员变量,静态变量,void,实例变量 ,遍历 ,引用,返回值,各是什么意思?

我的天啊,你知道这么多名词应该学过编程吧要么百度一下,不就又比较全面精确的解释算了,我复制几个吧变量分为局部与全局,局部变量又可称之为内部变量.由某对象或某个函数所创建的变量通常都是局部变量,只能被内部引用,而无法被其它对象或函数引用.全局变量既可以是某对象函数创建,也可以是在本程序任何地方创建.全局变量是可以被本程序所有对象或函数引用.一个局部变量在被其它对象引用时,会是一个空值.但全局变量却不会出现这种情况成员变量是指定维度的成员变量,用于标识某个维度成员语言无关的通用定义:与程序有着相同生命周期(英语:Object lifetime)的变量;C族语言特有的定义:以static存储类声明的变量.