对于没有显式初始化的变量的初始值可以做怎样的假定?

本文详细解释了不同生存期的变量如何进行初始化。对于静态生存期的未初始化变量会默认初始化为零值;而对于自动生存期的变量及通过malloc分配的内存,则可能包含不确定的数据,需要明确初始化。

具有静态(static)生存期的未初始化变量(包括数组和结构),即在函数外声明的变量和静态存储类型的变量)可以确保初始化为零,

就像程序员键入了“=0”或“={0}“一样。因此,这些变量如果是指针就会被初始化为正确类型的空指针,如果是浮点数则就会被初始化为0.0.

具有自动(automatic)生存期的变量(即非静态存储类型的局部变量)如果没有显式地初始化,则包含的是垃圾内容,对垃圾内容不能做任何有用的

假设。

用malloc和realloc动态分配的内存也可能包含垃圾数据,因此必须由调用者正确地初始化。用calloc获得的内存全为0,但这对指针和浮点值不一定有用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值