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

来源:互联网 发布:阿里云机房测速 编辑:程序博客网 时间:2024/04/30 20:33

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

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

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

假设。

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

0 0