未初始化的变量的初始值可用于什么样的假设?如果一个全局变量初始值为“零,它作为一个空指针或浮点零的可能性?
“静态''一个未初始化的变量(即外声明的变量和静态存储类型的变量的函数)的生存,是要确保初始值为零,像一个程序员,键入“=0”相同。因此,如果这些变量,指针被初始化为一个空指针,如果是浮点数被初始化为0.0(或正确的类型,见第五章)。
有“自动''(即静态存储类型的局部变量)变量的生存没有显示初始化,包含垃圾邮件。垃圾不能有任何有益的假设。
这些规则也适用于数组和结构(如称为“聚合物'');初始化,数组和结构被认为是“变量''。
malloc()和realloc()的动态分配的内存可能包含垃圾数据,因此必须由主叫方正确初始化。calloc()函数的内存为全零,但这不一定是有用的指针和浮点值(参见问题7.26和第5章)。
参考文献:[K&R1,二段。 4.9第82-4][的K&R2,二段。 4.9第85-86][ISO二段。 6.5.7段。7.10.3.1段。 7.10.5.3][H&S,二段。 4.2.8第72-3段。 4.6第92-3段。 4.6.2第94-5段。 4.6.3P-96,二段。 16.1,P。 386]。
>> 本文固定链接: http://www.vcgood.com/archives/3663