Chinaunix首页 | 论坛 | 博客
  • 博客访问: 130445
  • 博文数量: 38
  • 博客积分: 2050
  • 博客等级: 大尉
  • 技术积分: 471
  • 用 户 组: 普通用户
  • 注册时间: 2007-11-19 15:49
文章分类

全部博文(38)

文章存档

2009年(1)

2008年(37)

我的朋友

分类: LINUX

2008-05-27 09:14:02

没有初始化的变量的初始值可以作怎样的假定?



具有 ``静态'' 生存期的未初始化变量  (即, 在函数外声明的变量和 有静态存储类型的变量) 可以确保初始值为零, 就像程序员键入了  ``=0'' 一样。因此, 这些变量如果是指针会被初始化为正确的空指 针, 如果是浮点数会被初始化为 0.0 (或正确的类型, 参见第  章)。

具有 ``自动'' 生存期的变量 (即, 没有静态存储类型的局部变量) 如 果没有显示地初始化, 则包含的是垃圾内容。对垃圾内容不能作 任何有用的假设。

这些规则也适用于数组和结构 (称为 ``聚合体'' ); 对于初始化来说, 数组和结构都被认为是 ``变量''。

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

阅读(661) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~