【发布时间】:2020-03-17 13:03:49
【问题描述】:
在阅读 C++ Primer 一书时,我遇到了这样的说法:“数组中元素的数量是数组类型的一部分。”所以我想用下面的代码找出来:
#include<iostream>
int main()
{
char Array1[]{'H', 'e', 'l', 'p'};
char Array2[]{'P', 'l', 'e', 'a', 's', 'e'};
std::cout<<typeid(Array1).name()<<std::endl; //prints A4_c
std::cout<<typeid(Array2).name()<<std::endl; //prints A6_c
return 0;
}
有趣的是,两个数组的 typeid 结果表明它们在某种程度上有所不同。
- 幕后发生了什么?
- 为什么数组的类型必须包含其大小?只是因为它的大小不应该改变吗?
- 这将如何影响比较数组?
只是希望能够深入理解这个概念。
【问题讨论】:
-
在类型中包含大小信息不是严格必需,但它很有用
-
任何关于数组的教程都会解释(1)。我不确定 (3) 是什么意思,因为没有内置方法来比较数组。