在我的方法中,我声明了一些变量,包括 int blockCount;
。我不止一次调用这个方法。使用 Xcode 调试器,我发现在第二次调用该方法后,blockCount
的值被设置为 364265,而它被设置为 2,就在几毫秒之前。
这不是一个真正的问题,因为我可以将它设置为 0 或我想要的任何其他数字,但是一遍又一遍地声明某个变量是不是编程习惯不好?我对编程很陌生,我想确保我以正确的方式做事。 :)
最佳答案
如果您声明了一个变量但没有为其提供值,则它被视为“未初始化”。 C 中未初始化的变量具有“未定义”值——它通常是垃圾,包含上次在该地址写入内容时恰好位于该地址的所有内容。不过,严格来说,“未定义”意味着您在任何情况下都不应尝试使用该值。 (如果你搜索“nasal demons”,这将以非常丰富多彩且有用的术语进行解释。*)
这个变量是本地变量,每次方法运行时都会重新创建,因此会得到一个新的实际,但在技术上仍然是 未定义 每次传递的值。
一般建议不要让变量处于未初始化状态,因为“随机”值会导致难以发现的错误,偶尔会召唤出前面提到的鼻恶魔。你没有做错任何事,但如果你没有在声明的一两行中设置实际值,我建议将其初始化为 0 或一些合理的默认值:
int blockCount = 0;
*另请参阅:What happens to a declared, uninitialized variable in C? Does it have a value?
关于objective-c - 再次声明时可以随机设置变量吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9726817/