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;
这既更具描述性,又增加了很多好处。有关更多详细信息,请参见此处。
推荐阅读
- python - 如何在 Tkinter 中向上或向下移动项目而不丢失它们的选择?
- c - 函数重载,错误代码 C2660
- python - Python Pandas 合并和追加数据
- javascript - 如何在 svg 交互式地图上设置城市边界?
- python - Datetime // 在 JSON 导入例程中分配特定的数据类型
- c# - c#如何获取引用的项目列表的名称?
- linux - 检查 Unix 中的变量是否包含文件 bash shell 中提到的任何字符串
- jmeter - 将测试计划移动到新机器时使用 jmeter 获得 401 Unauthorized
- php - 正则表达式删除帖子引号
- r - R重塑数据框