3

以下は、有効な配列宣言のさまざまな方法です

int p[]またはint []p、x と y の両方が整数型でint[] pあると書くと仮定しますが、私が書くと、コンパイラはそれが 2 次元配列であると言う理由を書きますint x,yint []q, p[];p

以下のコードをご覧ください

public class some {
    int []q, p[];
    void x() {  
        p=new int[10][3];// this is valid
        //p=new int[10];// compiler expects p as 2d array
        q=new int[10];  
    }
    public static void main(String args[])
    {

    }
}
4

2 に答える 2

10
int []q, p[];

これは次のように記述できます。

int[] q;
int[] p[]; // This is effectively a 2d array and that is why compiler gives that error.

そのため、配列を宣言する 1 つのスタイルに従う必要があります。

スタイル 1 :int[] arr; // This is the general preference is Java

スタイル 2 :int arr[]; // I remember using this style when working in C++

両方を組み合わせないでください。混乱する可能性が高くなります。そして、ジョンが正しくコメントしたように、推奨されるスタイルとして常に最初のスタイルに従います。

于 2013-10-17T06:48:45.823 に答える
6

Java では、次のように書くときの違いに注意してください。

int[] q, p[]; 

それからqありますint[]pint[][]

それは書くようなものだからです:

int[] q;
int[] p[];

しかし、あなたが書くとき

int q[], p[]; 

それからqありますint[]pint[]

そういうわけで、あなたはそれに注意する必要があります。

Java はint array[]、C プログラマーを幸せにするだけです :)

注意すべきもう1つのこと:

int[] happyArray1, happyArray2;
int happyArray[], happyInt;

明確化:

書くと、 andが両方ともsであることはint a, b明らかです。このように考えてください: と の両方に を「適用」します。abintintab

しかし、 がある場合は、と!の両方int[] a, b[]に「適用」します。つまり、それは ですが、です。int[]ab[]aint[]bint[][]

于 2013-10-17T06:48:25.547 に答える