为什么value都是0?
来源:百度知道 编辑:UC知道 时间:2024/05/27 07:50:31
c++初手,在网上看到这段代码:
#include <iostream.h>
void fun(int i)
{
static int value=i++;
cout<<value;
}
int main()
{
fun(0);
fun(1);
fun(2);
return 0;
}
为什么每次打印出来的value都是0?
#include <iostream.h>
void fun(int i)
{
static int value=i++;
cout<<value;
}
int main()
{
fun(0);
fun(1);
fun(2);
return 0;
}
为什么每次打印出来的value都是0?
因为 value 是静态类型(static),只会定义一次。也就是说不管你调用 fun 这个函数多少次,static int value = i++ 这个定义语句只会在第一次调用的时候执行,由于你第一次执行的时候 i = 0,所以 value 也就被初始化成 0 了,以后调用 fun 都不会再执行这条语句的。
你可以把 value = i++ 单独拿出来,让他每次都执行:
void fun(int i) {
static int value;
value = i++;
cout << value;
}
或者不要把 i 定义成静态变量:
void fun(int i)
{
int value=i++;
cout<<value;
}
你好因为static 修饰的变量值是不能改变的
希望能理解
你搞明白STATIC就知道为什么了。
最近的病毒为什么都是在System Value Information 里的?~``是什么病毒?
Excel填入公式后出现#VALUE!为什么?
this.hidDisplayTotal.Value = "0";
value值为什么那么长?到底是什么东西?
对数据的操作分为reference和value两种,为什么object只用reference而不用value
关于rs.RecordCount和rs.fields(0).value
EXCEL里的#VALUE如何转换为0?
HKT value
Audigy 4,Audigy 2 Value哪个比较好?请说明为什么好
请问这段程序为什么会输出value=123呢?谢谢