【发布时间】:2023-03-16 20:51:01
【问题描述】:
我有 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 声明通常模拟变量之后的使用。通过
*p使用指针,通过arr[i]使用数组。 (由于这两种类型之间的关系,您可以挑剔这一点,但我希望您明白这一点。) -
int[5] arr可能更奇怪,因为 arr 的类型可能不是int*。此外它不允许int arr1[5], arr2[10]。 -
我与 Java 脱节了,但它也不允许
type variablename[]吗? -
@cigien - 是的,但该语法是老式的(早期错误,遵循 C/C++ 语法),现在首选“类型 [] 变量”。
-
在c++中,为什么要在变量名后面加上括号? -- 因为 -- 就是这样。 C++ 不是 Java。