静态变量赋值问题
发布网友
发布时间:2022-05-10 09:32
我来回答
共5个回答
热心网友
时间:2024-02-05 22:56
3楼的程序根本没法运行的,自己仔细看看了!
首先说明:静态变量不是常量, 是变量,是可以和普通变量一样
来赋值的。
静态变量指的是他的生命周期是整个程序运行周期。
不会在函数void fun1() 调用完毕就释放,而是还是存在的
而且变量的值不变。
同时,静态变量如果不赋初值的话,默认是0
而普通变量的值是不确定的,不知道的。
因为本质上是分配的不同的内存空间。
你肯定是上课的时候听错了,是只能定义一次,
而不是只能赋值一次,哈哈!
热心网友
时间:2024-02-05 22:56
代码是按顺序执行的,后面的赋值当然会走,静态变量只赋值一次是没错的,你可以这样来验证。
void fun1()
{
static int value = 50;
value++;
pirntf("%d\n", val);
}
int main()
{
for(int i = 0;i<3;i++)
{
fun1();
}
return 0;
}如果你理解静态变量的含义,相信你会看到预期结果的。。。
热心网友
时间:2024-02-05 22:57
谁和你说 静态变量只能赋值一次
不是这样的
静态变量 是定义的时候 初始化一次
热心网友
时间:2024-02-05 22:58
静态变量只能赋值一次是指
static int value = 50;
这样的初始化语句只执行一次,
后面的value = 100;还是每次都要执行的
热心网友
时间:2024-02-05 22:58
只能赋值一次的final