C++ - 未初始化向量的值

2024-03-22

我从答案中了解到这个问题 https://stackoverflow.com/questions/1597405/what-happens-to-a-declared-uninitialized-variable-in-c-does-it-have-a-value全局/静态未初始化 int 的值将为 0。答案this one https://stackoverflow.com/questions/1787856/what-is-the-element-value-in-an-uninitialized-vector表示对于向量,将调用对象类型的默认构造函数。

我无法弄清楚 - 当我有时会发生什么vector<int> v(10)在本地函数中。默认构造函数是什么int?如果我有怎么办vector<int> v(10)全球宣布?

我所看到的是vector<int> v(10)在本地函数中导致变量为 0 - 但我不确定这是否只是因为我的编译器或者是固定的预期行为。


标准中将零初始化指定为内置类型的默认零初始化/值初始化,主要是为了在模板使用中支持这种类型的情况。

请注意,此行为不同于局部变量,例如int x;这使得值未初始化(就像在 C 语言中继承行为一样)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C++ - 未初始化向量的值 的相关文章

随机推荐