C语言静态局部变量初始化问题 20

C语言中,静态变量的初始化是否在函数被调用之前就已经初始化了?静态变量在函数调用之前已经在内存中开辟空间,但是,我想问的是在开辟空间的同时,是否也赋值。voidstati... C语言中,静态变量的初始化是否在函数被调用之前就已经初始化了?静态变量在函数调用之前已经在内存中开辟空间,但是,我想问的是在开辟空间的同时,是否也赋值。

void staticPrt()
{
int static num = 10;

}

int main()
{
.........
}

这个num 的值是否在开辟内存的时候就已经赋值了?
展开
 我来答
金色潜鸟
2018-09-23 · TA获得超过3.2万个赞
知道大有可为答主
回答量:1.3万
采纳率:89%
帮助的人:5703万
展开全部
这与编译器的处理方法有关。
静态变量生命期与程序相同,未调用函数前,内存分配已完成。是否同时也赋了值,不能肯定。可能在第一次调用时赋值,也可以在开辟内存的时候就已经赋了值。
从程序设计考虑,假定内存分配时尚未完成赋值,以免副作用。
追问
就是 我即使初始化了 也不会在开辟内存的时候赋值么? 不赋值? 值也不是0? 就是空的内存?
heptnaol
2018-09-23 · TA获得超过7263个赞
知道大有可为答主
回答量:7120
采纳率:78%
帮助的人:1821万
展开全部
是的,这个值写在可执行文件中,读入文件到内存的时候,这个地址的值就是10了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式