gpt4 book ai didi

objective-c - 再次声明时可以随机设置变量吗?

转载 作者:行者123 更新时间:2023-12-04 03:04:50 25 4
gpt4 key购买 nike

在我的方法中,我声明了一些变量,包括 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com