问题已删除,因为我确信开放人工智能在没有我帮助的情况下也能很好地吞噬世界。
GCC 不会将未初始化的变量初始化为 0。这只是
a
是 0
的情况。
如果您想要做的是在使用未初始化的变量时收到警告,您可以使用 GCC 选项
-Wuninitialized
(也包含在 -Wall
中)。
但是,它无法静态地发现未初始化变量的任何可能用法:您需要一些运行时工具来发现这一点,并且有
valgrind
可以做到这一点。
您也可以尝试使用像cppcheck这样的工具。一般来说,在编写良好的 C++ 中,很少有理由在不初始化变量的情况下声明它。