【问题标题】:c++ array declaration compared to java array declaration [closed]c++数组声明与java数组声明的比较[关闭]
【发布时间】:2015-12-24 11:50:15
【问题描述】:

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

int[3] values;

int value[3];

这两种形式在 c++ 中也有效吗?

提前感谢您的帮助!

【问题讨论】:

  • 这不是你想被问到的问题类型,因为它没有显示出你的任何努力。
  • @user5709212:这不是您想要与 SO 社区互动的方式。

标签: c++ arrays


【解决方案1】:

没有。只有第二个在 C 或 C++ 中有效。

【讨论】:

    【解决方案2】:

    在 C++ 中,您最好将std::array(或类似类型)用于固定大小的数组,如下所示:

    array<int, 3> values;
    

    对于动态大小,通常使用std::vector(或类似类型),如下所示:

    vector<int> values( 3 );
    

    声明int[3] values在C++中无效,但可以写

    template< class Some_type >
    using Type_ = Some_type;
    
    // ...
    Type_< int[3] > values;
    

    C++ 数组在 C++ 类型系统中构成了一个大漏洞,因为在需要指针的上下文中,C++ 数组表达式衰减为指向第一项的指针。 Java 数组构成了 Java 类型系统中的一个较小的漏洞。由于数组项的类型不正确,仍然有可能在 Java 中出现异常(运行时错误)。这似乎表明数组很难用任何语言正确处理。然而,C++ 原始数组是最糟糕的数组语言设计之一,因此最好使用上面讨论的替代方案。

    【讨论】:

      猜你喜欢
      • 2013-06-09
      • 2015-03-01
      • 2023-02-09
      • 1970-01-01
      • 2022-01-03
      • 1970-01-01
      • 1970-01-01
      • 2022-07-21
      • 1970-01-01
      相关资源
      最近更新 更多