静态变量赋值第二次为什么值不改变???

staticc=3;c=c+1;在看C语言书里发现静态变量这个程序里,c的值在一个函数里被FOR循环调用了3次,第一次c的值是3我能理解,但是第二次的时候又运行到了sta... static c = 3 ; 
c = c+1;  
在看C语言书里发现静态变量这个程序里,c的值在一个函数里被FOR循环调用了3次,第一次c的值是3我能理解,但是第二次的时候又运行到了static c = 3 ; 这个值不应该还是3么,他不是又给C赋值了一次3么,为什么会是4呢,不是很理解啊~!!  

求大神讲解一下。
为什么还会是4呢??
展开
 我来答
cqpcy
推荐于2017-09-09 · TA获得超过658个赞
知道小有建树答主
回答量:746
采纳率:66%
帮助的人:361万
展开全部
static修饰的变量只被初始化一次,并且保持最近的值,哪怕创建它的函数已经结束,这个变量也不会被释放,下次调用是同一个地址,所以里面的值是上次的。
具体原因请关注变量分配空间相关知识,神马常量区,代码区,堆栈区的
追问
再调用一次static c = 3; 不算再一次给c赋值吗???用3把4代替掉了
追答
请记住只被初始化一次,3赋值给c只在第一次生效,以后调用不会执行了
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式