C++数组声明与java数组声明的比较

C++数组声明与java数组声明的比较,c++,arrays,C++,Arrays,我知道在java中,数组可以声明为 int[3] values; 或 这两种形式在C++中都有效吗?< /P> 提前感谢您的帮助你最好使用STD::数组或类似类型的固定大小数组,例如: array<int, 3> values; vector<int> values( 3 ); 声明int(3)值在C++中无效,但可以编写 template< class Some_type > using Type_ = Some_type; // ... Type_

我知道在java中,数组可以声明为

int[3] values;

这两种形式在C++中都有效吗?< /P>


提前感谢您的帮助 < P>你最好使用STD::数组或类似类型的固定大小数组,例如:

array<int, 3> values;
vector<int> values( 3 );

声明int(3)值在C++中无效,但可以编写

template< class Some_type >
using Type_ = Some_type;

// ...
Type_< int[3] > values;

C++数组在C++类型系统中构成了一个大洞,因为在一个指针被预期的情况下,C++数组表达式会衰减到指向第一个项的指针。Java数组在Java类型系统中构成了一个较小的漏洞。由于数组项的类型不正确,Java中仍然可能出现异常运行时错误。这似乎表明数组在任何语言中都很难正确使用。然而,C++原始数组是数组中最差的语言设计,所以最好使用上面讨论的替代方案。

这不是你想问的问题类型,因为它没有显示出你的任何努力。@ USE5709212:这不是你想要与SO社区交互的方式。
template< class Some_type >
using Type_ = Some_type;

// ...
Type_< int[3] > values;