【发布时间】:2013-01-21 00:14:49
【问题描述】:
如果变量未初始化,是否可以假设 if 语句始终有效?假设是肯定的,但有人告诉我,变量中的随机垃圾位并不总是意味着检查是否为 null 会起作用。
Void afunction () {
char* someStr;
if (someStr)
{
// do something
}
}
【问题讨论】:
-
我很确定这不是保证。我认为它的实现取决于创建的指针指向的位置。
-
@Falmarri 读取未初始化的变量是未定义的行为,而不是“依赖于实现”。见markshroyer.com/2012/06/c-both-true-and-false 和kqueue.org/blog/2012/06/25/more-randomness-or-less
-
@PascalCuoq:对,这是常规变量。我不确定未初始化的指针是否相同。
标签: c