静态变量赋值问题

voidfun1(){staticintvalue=50;value=100;pirntf("%d\n",val);}这个函数打印出的是100,不是说静态变量只能赋值一次... void fun1()
{
static int value = 50;
value = 100;
pirntf("%d\n", val);
}
这个函数打印出的是100,不是说静态变量只能赋值一次么?为什么不是50?谢谢!
展开
 我来答
小斌09
2009-12-16 · TA获得超过327个赞
知道小有建树答主
回答量:190
采纳率:0%
帮助的人:155万
展开全部
3楼的程序根本没法运行的,自己仔细看看了!

首先说明:静态变量不是常量, 是变量,是可以和普通变量一样

来赋值的。

静态变量指的是他的生命周期是整个程序运行周期。

不会在函数void fun1() 调用完毕就释放,而是还是存在的

而且变量的值不变。

同时,静态变量如果不赋初值的话,默认是0

而普通变量的值是不确定的,不知道的。

因为本质上是分配的不同的内存空间。

你肯定是上课的时候听错了,是只能定义一次,

而不是只能赋值一次,哈哈!
Storm代理
2023-08-29 广告
StormProxies是全球大数据IP资源服务商,其住宅代理网络由真实的家庭住宅IP组成,可为企业或个人提供满足各种场景的代理产品。点击免费测试(注册即送1G流量)StormProxies有哪些优势?1、IP+端口提取形式,不限带宽,IP... 点击进入详情页
本回答由Storm代理提供
zhaigangvvv
2009-12-16 · TA获得超过348个赞
知道小有建树答主
回答量:1190
采纳率:0%
帮助的人:589万
展开全部
代码是按顺序执行的,后面的赋值当然会走,静态变量只赋值一次是没错的,你可以这样来验证。
void fun1()
{
static int value = 50;
value++;
pirntf("%d\n", val);
}
int main()
{
for(int i = 0;i<3;i++)
{
fun1();
}
return 0;
}如果你理解静态变量的含义,相信你会看到预期结果的。。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
河边一支柳
推荐于2017-11-22 · TA获得超过434个赞
知道小有建树答主
回答量:324
采纳率:0%
帮助的人:256万
展开全部
谁和你说 静态变量只能赋值一次
不是这样的

静态变量 是定义的时候 初始化一次
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
忘至白葬不情必0T
2009-12-16 · TA获得超过3万个赞
知道大有可为答主
回答量:1.1万
采纳率:90%
帮助的人:1.2亿
展开全部
静态变量只能赋值一次是指
static int value = 50;
这样的初始化语句只执行一次,
后面的value = 100;还是每次都要执行的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
寂寞氵才说爱
2012-07-05
知道答主
回答量:47
采纳率:0%
帮助的人:19.9万
展开全部
只能赋值一次的final
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式