为什么C允许未初始化的局部变量?

Des*_*tor 4 c initialization local-variables variable-initialization

查看Java和C#等语言使用未初始化的局部变量是编译时错误.那么为什么C&C++允许未初始化的局部变量呢?这些语言允许这种情况的原因是什么?我认为,如果这两种语言迫使程序员强制初始化包括指针在内的局部变量,那么许多不好的问题就不会出现或者可以防止,这也会使语言更加安全.不是吗?

Jon*_*ood 5

众所周知,C语言可以生成非常快速和高效的代码.

考虑到这一点,语言不能自动初始化所​​有变量.使用自动初始化变量的语言,如果稍后在代码中初始化它们,它们实际上会被初始化两次,这样效率较低,没有任何用处.

你是对的,C是一种高级语言,经验丰富的开发人员需要更多的关注,以确保不会因忘记初始化变量或忘记做其他不自动的事情而引入问题.