C++ 中未初始化的变量
Unitialized Variables in C++
向我提出的问题是:
C++ 中未初始化变量的值是多少?我们必须初始化所有变量吗?初始化变量的规则是什么?
我查看了我的文本以及手头的另一篇文本,但似乎找不到答案。这是我尝试过的:
C++中未初始化变量的值取决于未初始化变量分配给的内存中存储的先前值。初始化所有变量不是必需的,例如如果变量将通过用户输入立即赋值,则不需要初始化该变量。良好的编程习惯应该是初始化一个变量,如果一个变量未初始化,那么注释应该解释保持变量未初始化的原因。
我错过了什么吗?他们是任何人都可以指向我的资源吗?我错过了变量初始化的 "rule" 吗?谢谢。
还不错。不要忘记具有全局范围的变量(全局变量和静态局部变量)在程序初始化时被初始化为零。
通常,您不知道未初始化的变量中存储了什么,因此初始化变量始终是个好主意。这样你就可以避免以后可能出现的混淆;例如,如果您稍后在程序中打印出一个变量以进行调试(并且您还没有初始化它),它可能会打印出一些奇怪的值。
如果您需要更多信息,您的问题似乎也已在此处得到解答:http://www.cplusplus.com/forum/general/62807/
对于包含静态class成员的全局和静态变量,它们将被初始化为zero/NULL。其他一切通常都是未定义的,意思可以是任何东西。一个例外是在高安全环境下,系统可能会清除释放的内存,这种情况下如果你使用它,它会全为零。另一个例外是调试版本,其中有时会使用特殊的幻数来初始化内存和变量,以此来检测一些常见的编程错误。
变量已声明但在使用前未设置为明确的已知值。它会有一些价值,但不是可预测的。我建议你看看这个页面 http://www.learncpp.com/cpp-programming/eight-c-programming-mistakes-the-compiler-wont-catch/
向我提出的问题是:
C++ 中未初始化变量的值是多少?我们必须初始化所有变量吗?初始化变量的规则是什么?
我查看了我的文本以及手头的另一篇文本,但似乎找不到答案。这是我尝试过的:
C++中未初始化变量的值取决于未初始化变量分配给的内存中存储的先前值。初始化所有变量不是必需的,例如如果变量将通过用户输入立即赋值,则不需要初始化该变量。良好的编程习惯应该是初始化一个变量,如果一个变量未初始化,那么注释应该解释保持变量未初始化的原因。
我错过了什么吗?他们是任何人都可以指向我的资源吗?我错过了变量初始化的 "rule" 吗?谢谢。
还不错。不要忘记具有全局范围的变量(全局变量和静态局部变量)在程序初始化时被初始化为零。
通常,您不知道未初始化的变量中存储了什么,因此初始化变量始终是个好主意。这样你就可以避免以后可能出现的混淆;例如,如果您稍后在程序中打印出一个变量以进行调试(并且您还没有初始化它),它可能会打印出一些奇怪的值。
如果您需要更多信息,您的问题似乎也已在此处得到解答:http://www.cplusplus.com/forum/general/62807/
对于包含静态class成员的全局和静态变量,它们将被初始化为zero/NULL。其他一切通常都是未定义的,意思可以是任何东西。一个例外是在高安全环境下,系统可能会清除释放的内存,这种情况下如果你使用它,它会全为零。另一个例外是调试版本,其中有时会使用特殊的幻数来初始化内存和变量,以此来检测一些常见的编程错误。
变量已声明但在使用前未设置为明确的已知值。它会有一些价值,但不是可预测的。我建议你看看这个页面 http://www.learncpp.com/cpp-programming/eight-c-programming-mistakes-the-compiler-wont-catch/