C++ 未初始化的本地(非全局)int 数组中的元素类型到底是什么?

C++ What exactly is the element type in an uninitialized local (not global)int array?

本文关键字:元素 数组 类型 是什么 int 初始化 全局 C++      更新时间:2023-10-16

我正在复习我的C++考试,我发现在我的一个教程解决方案中它说

string sa[10]; //all elements are empty strings
int ia[10]; //all elements are 0
int main()
{
string sa2[10]; //all elements are empty strings
int ia2[10]; //all elements are undefined
}

但是当我在计算机上运行它时

cout<<typeid(ia2[i])name()<<endl;

这里的类型是所有整数,这不是一个未定义的元素? 所以我很好奇解决方案是否错误,或者有什么微妙的原因让我没有打印正确的字体? 任何帮助不胜感激,谢谢!

添加这是我从教程解决方案中找到的: – 如果 int 数组是在函数中定义的,则每个数组的值 元素未定义。 – 如果 int 数组是在任何函数外部定义的,则 每个元素为 0。

这是注释中的某种快捷方式,可能会产生误导;可以读到:

string sa[10]; //all elements are empty strings
int ia[10]; //all elements are int initialized to 0
int main()
{
string sa2[10]; //all elements are empty strings
int ia2[10]; //all elements are int with undefined values
}