首页 > 解决方案 > 为什么 C++ 数组的括号在变量上而不是数据类型上?

问题描述

我有 Java 背景,正在学习 C++。我有一个语言实现/语法决策问题。

在 Java 中,数组声明如下所示:

//generally   
type[] variableName;
//concretely
int[] intArray;

但是,在 C++ 中,它看起来像这样:

//generally
type variableName[size];
//concretely
int intArray[5];

Java版本对我来说很有意义,括号应该附加数据类型。该变量不是一个int,它是一个 int 数组,所以我们将 替换intint[]

在 C++ 中,为什么变量名后面有括号?

(此外,当涉及到指针时,C++ 似乎同意这一点。int指针int* intPtr不是int ptr*。我错过了什么?)

标签: c++arrayssyntax

解决方案


c这是一个以相同方式声明它的遗留项目。我认为这很可能就是它c最初创建时的完成方式。在现代 c++ 中,我们可以避免使用静态数组或指针。你的例子可以写成:

std::array<int, 5> intArray;

这既更具描述性,又增加了很多好处。有关更多详细信息,请参见此处


推荐阅读