インスタンスの配列定義について教えてください

@とAはどう違うのでしょか?

(1行目のカッコの位置です)

@カッコが左のAnimalにある
Animal[] vc = new Animal[2];
vc[0] = new Animal();
vc[0].name = "neko";
vc[0].age = 5;
・・・・

Aカッコが左の変数にある
Animal vc[] = new Animal[2];
vc[0] = new Animal();
vc[0].name = "neko";
vc[0].age = 5;
・・・・

上記2つでコンパイルエラーになりません。
違いはなんですか?