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

时间:2018-10-01 18:43:50

标签: c++

我正在审查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。

1 个答案:

答案 0 :(得分:4)

这是评论中的某种捷径,可能会引起误解;一个人可能会读到:

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
}