2010-01-20 7 views
3

Tout en déclarant tableau, nous pouvons utiliser les supports ne importe quel côté de l'identifiant, mais dans le cas:dans la déclaration de tableau int [] k, i et int k [], i;

int[] k,i; 

et

int k[],i; 

Il sera examiné de deux façons différentes. C'est le premier crée deux tableaux k et i. que le second crée un tableau k et une variable normale i. Quel est ce comportement?

EDIT: en java habituellement nous préférons le premier type de déclaration. mais dans ce cas, nous ne pouvons pas créer un tableau et une variable primitive dans l'instruction unique.

+1

Notez que déclarer deux variables sur la même ligne est souvent considéré comme une mauvaise pratique. Nous avons tendance à déclarer les variables la première fois qu'elles sont ** utilisées **. – KLE

+0

vous voulez dire si j'ai cinq variables de type int comme a, b, c, d, e. je devrais déclarer comme int a; int b; ... – GuruKulki

+1

Exactement. Et vous devriez leur donner de meilleurs noms. – starblue

Répondre

3

Mon estimation est la suivante:

La déclaration int[] k est plus logique, car il déclare k être un tableau de int. Par conséquent, c'est le style préféré (?) En Java.

int k[], d'autre part, était la voie C de déclarer ce tableau (K & R avait une philosophie différente quand il est venu à la syntaxe de déclaration - ils voulaient des déclarations d'imiter l'accès à la variable) et pour faciliter la transition pour les programmeurs C, cette syntaxe était également autorisée - pas de mal fait. Maintenant, dans votre déclaration ci-dessus, vous avez enchaîné deux déclarations. Dans le premier cas, les deux variables sont déclarées avec le même type - ce qui est clairement int[]. Cependant, dans le second code, ce comportement serait contre-intuitif (et également différent du comportement de C), et a donc d'autres sémantiques. Gardez à l'esprit que c'est purement une conjecture.

+0

C'est en effet le style préféré. http://java.sun.com/docs/books/tutorial/java/nutsandbolts/arrays.html dit * Cependant, la convention décourage ce formulaire; les parenthèses identifient le type de tableau et doivent apparaître avec la désignation de type. * – BalusC

2

Pensez comme ceci:

(int[]) k, i 

int (k[]), (i)

Dans le premier exemple, les supports sont associés au mot-clé int, en spécifiant que vous souhaitez créer des tableaux int. Dans la seconde, vous spécifiez type int, puis déclarez un tableau d'ints k et un int i.

Questions connexes