c语言中:静态局部变量只能被赋值一次,静态外部变量与外部变量能被赋值多次。 这句话 对不对

如题所述

错的,变量是可以修改的,常量不可以
静态局部变量和静态外部变量是一样的,差别就是一个局部一个全局,只是static又不是const追问

谭浩强那本书中说 对静态局部变量是在编译时赋初值的,即只能赋一次值。那么这句话怎么理解?

追答

赋初值

静态局部变量的值在函数调用结束后不消失而保留原值,即其占用的存储单元不释放,在下一次函数调用时,该变量已有值,就是上一次函数调用结束时的值

静态局部变量在静态存储区分配存储单元,在程序的整个运行期间都不释放。静态局部变量是在编译时赋初值的,即只赋初值一次。

意思就是 在程序的整个运行期间,静态局部变量只会赋一次初始值(只赋初值一次),不是说不能改

追问

谢谢

温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-01-08
不对。静态和动态是生命期,不是说这个变量不能被赋值。而常量(如const)才是说只能被赋值一次(定义的时候)
第2个回答  2015-01-08