public class CharArrayTest {
public static void main(String[] args) {
type[] arrayRefVar_0; // 首选的方法
type arrayRefVar_1[]; // 效果相同,但不是首选方法
}
}
type arrayName [ arraySize ];
感觉 Java 的首选方法更符合我的直觉.
1
lonewolfakela 2020-11-08 10:48:24 +08:00 12
c 语言的所有类型声明都遵守一个基本的格式:一个“类型” + 一个“用法范例”,数组也不例外
就以数组声明为例子: int array[1000] 这个意思是说,如果我们按照 array[整数] 这样的格式写一个表达式,就能得到一个 int 型的结果。 如果说数组声明对这个格式的体现还不太明显的话,可以看看函数指针的声明: int (*p) (int, int) 这表示,如果我们按照 (*p)(整数, 整数) 这样的格式写一个表达式,就会得到一个 int 型的结果。 所以总结下来,c 语言声明语句最左侧其实是写的“这个变量在正确使用后会得到一个什么类型的结果”而不是“这个变量本身是什么类型”,而除开最左边的那个类型之外,声明的右半部分其实是对被声明变量的使用方法的一个示例。 |
2
lonewolfakela 2020-11-08 10:52:25 +08:00
相比之下,type[] array 这种风格的声明是更直接的一种:声明的左半部分是“被声明变量本身的类型”,右半部分是“被声明变量的名字”。
这种写法确实更符合更多人的直觉(对数组类型还不太明显,但是如果你写一个返回函数指针的函数指针就能明白 c 语言的那种风格有多不直观了),所以比较新的语言更多地都是采用 type[] array 风格的。 |
3
chihiro2014 2020-11-08 11:07:57 +08:00
跟编译原理有关
|
4
icyalala 2020-11-08 11:10:27 +08:00
Java:
int[] arrayName = new int[100]; C: int* arrayName = calloc(100, sizeof(int)); 这样就一样了 |
5
tairan2006 2020-11-08 11:53:59 +08:00
C 的数组就是一个指针
|
6
xiangyuecn 2020-11-08 12:00:15 +08:00 2
int array[100] 眼睛告诉大脑是 100 个 array❌
int[100] array 眼睛告诉大脑是 100 个 int✅ 肉眼可见的伪代码 |
7
angryfish 2020-11-08 14:53:00 +08:00 via iPhone
看看 cpo
|
8
angryfish 2020-11-08 14:53:08 +08:00 via iPhone
cpp
|
9
jin7 2020-11-08 15:17:35 +08:00 via Android
JAVA 是最好的语言。。。。
|