c++ - 为什么 C++ 数组的括号在变量上而不是在数据类型上?

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

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

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

然而,在 C++ 中,它看起来像这样:

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

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

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

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

最佳答案

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

std::array<int, 5> intArray;

这既更具描述性又增加了很多好处。参见 here了解更多详情。

https://stackoverflow.com/questions/69248258/

相关文章:

swift - 是否有可能在 Swift 的枚举中将多个案例分组并表示为另一个案例?

javascript - leetcode 如何做到这一点 : Read user's input

c# - 如何将 ViewData 传递给类中的 Action 方法?

r - 如何按 r 中数据框中的行对数字数据进行排名?

c# - 从 C# 中的 JSON 字符串中获取特定值

c - Valgrind : Invalid read of size 1

python - 将函数重新定义为自身的一部分——为什么非法?

amazon-web-services - Github 工作流 CI/CD 失败

java - 如何检查至少一个 boolean 值是否为真?

java - 减去天数而不影响时间