下面是几句简单的数组定义和初始化语句,有的编译成功有的失败,不知道原因,请高手指点。 
int[] pins = { 9, 3, 7, 2 }; 
编译成功;
int[] pins;
pins = { 9, 3, 7, 2 }; 
编译失败;
int[] pins;
pins = new(){ 9, 3, 7, 2 }; 
编译成功;
int arraySize = 4;
int[] pins = new int[arraySize];
编译成功;
int arraySize = 4;
int[] pins = new int[arraySize]{ 9, 3, 7, 2 }; 
编译错误,提示应输入常量;
const int arraySize = 4;
int[] pins = new int[arraySize]{ 9, 3, 7, 2 }; 
编译成功;

解决方案 »

  1.   

    数组的初始化有两种方式。可以以字面形式指定数组的完整内容,也可以指定数组的大小,再使用关键字new初始化所有的数组元素!
      

  2.   

    int[] pins = { 9, 3, 7, 2 };   //直接赋值,省略了方括号指定长度,那么数组的长度就由 
    编译成功;                         //大括号中的初值的个数决定
    int[] pins;                      //利用这种直接赋值的方法进行数组的初始化的工作的时候,
    pins = { 9, 3, 7, 2 };         //两条语句不能分开! 
    编译失败;
    int[] pins;
    pins = new(){ 9, 3, 7, 2 };     
    编译成功;
    int arraySize = 4;
    int[] pins = new int[arraySize];   
    编译成功;
    int arraySize = 4;
    int[] pins = new int[arraySize]{ 9, 3, 7, 2 };  //利用该种方法时,长度要明确指出 
    编译错误,提示应输入常量;
    const int arraySize = 4;
    int[] pins = new int[arraySize]{ 9, 3, 7, 2 };  
    编译成功;
      

  3.   

    恩 这个应该是定义(define)的
    不是本质的东西,只是语法。