C语言规定数组长度在编译时必须有明确的值,即必须在数组定义时指定数组的长度;指定数组长度的常量表达式只能是整型字面常量或符号常量。
int A[10]; //正确
int[] A; //错误,C语言不允许这样方式定义
int m=10,F[m]; //错误,长度是变量
而在java、C#中,与C语言中的这种数组定义形式完全不同。
在C#中,数组定义格式:
int[] a=new int[10]; //正确
int a[]=new int[10]; //错误,秩说明符应位于变量标识符之前。
在java中,要求稍微宽泛了一些:
int[] a=new int[10]; //正确
int a[]=new int[10]; //正确
但无论是java还是C#类似于C语言的数组定义方式都是不被允许的。
即int A[10];不正确,这两个语言不允许在数组定义时指定长度,因为其数组定义与初始化是分开的,只能在初始化时指定其数组长度。
归根结底,这种数组定义的差别,正是编程语言定义的规则之间的差别,我们只要注意即可。