static修饰的局部变量或者全局变量一定要初始化吗

static修饰的局部变量或者全局变量一定要初始化吗?例如voidfun(){staticinti;}i是初始化为0了吗?... static修饰的局部变量或者全局变量一定要初始化吗?

例如 void fun()
{
static int i;
}
i是初始化为0了吗?
展开
 我来答
198901245631
2015-08-08 · TA获得超过3.5万个赞
知道大有可为答主
回答量:9037
采纳率:92%
帮助的人:1670万
展开全部
对。
解释:static表示的是静态,此类方法中不能有动态的变量,这样定义的原因是程序运行初始化后,会直接将静态块和变量直接加载到内存,之后不允许动态的修改参数名称或者是方法名称。
好处:如果静态方法或者是变量被多次调用的话,不需要每次都创建对象,节省了资源,提高了效率。
坏处:初始化加载,直接占用内存,并且如果只是偶尔调用的话,占用过多的内存就会影响效率。
所以要具体问题具体分析是用静态还是不用静态。
seesea2517
2012-08-30 · TA获得超过1480个赞
知道小有建树答主
回答量:512
采纳率:100%
帮助的人:546万
展开全部
实践是最好的老师。
不同的编译器会有不同的处理,所以你的示例没有做初始化,一般的编译器会默认为0,也有的会提示警告。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
maofelix
2012-08-30 · TA获得超过131个赞
知道答主
回答量:179
采纳率:0%
帮助的人:86.3万
展开全部
你这样的写法完全是错误的,static 只能修饰全局变量,也叫成员变量。局部变量是不能用static修饰的。
static 修饰的全部变量在定义时不需要初始化,但使用前要确保已经得到初始化,否则会报错。
追问
大哥真是你错了,static是可以修饰局部变量的,只是我不知道是不是默认的情况下初始化为0
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
bettle_c
2012-08-30 · TA获得超过758个赞
知道小有建树答主
回答量:363
采纳率:0%
帮助的人:239万
展开全部
那样写的话i的值应该是随机的,不一定为0,还有static修饰没有赋值程序应该会有警告
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式