в объявлении массива int [] k, i и int k [], i; - PullRequest
3 голосов
/ 20 января 2010

При объявлении массива мы можем использовать скобки с любой стороны идентификатора, но в случае:

int[] k,i;

и

int k[],i;

Это будет рассмотрено двумя разными способами. То есть сначала создается два массива k и i. этот второй создает массив k и нормальную переменную i. Что это за поведение?

РЕДАКТИРОВАТЬ: в Java обычно мы предпочитаем первый тип объявления. но в этом случае мы не можем создать массив и примитивную переменную в одном выражении.

Ответы [ 2 ]

3 голосов
/ 20 января 2010

My думаю, следующее:

Объявление int[] k более логично, поскольку оно объявляет k массивом int. Поэтому это предпочтительный (?) Стиль в Java.

int k[], с другой стороны, был способом C объявить этот массив (у K & R была другая философия, когда дело дошло до синтаксиса объявления - они хотели, чтобы объявления имитировали доступ к переменной) и чтобы облегчить переход для программистов на Си, этот синтаксис также был разрешен - никакого вреда.

Теперь, в своем заявлении выше вы объединили две декларации. В первом случае обе переменные объявляются с одним и тем же типом - который явно int[]. Однако во втором коде это поведение будет нелогичным (а также отличным от поведения C) и, следовательно, имеет другую семантику.

Имейте в виду, что это чисто предположение.

2 голосов
/ 20 января 2010

Думайте об этом так:

(int[]) k, i

int (k[]), (i)

В первом примере скобки связаны с ключевым словом int, указывающим, что вы хотите создать массивы int. Во втором вы указываете тип int, затем объявляете массив целых чисел k и int i.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...