В объявлении массива int [] k, я и int k [], i;

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

int[] k,i;

и

int k[],i;

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

EDIT: в java обычно мы предпочитаем первый тип объявления. но в этом случае мы не можем создать массив и примитивную переменную в одном выражении.

Ответ 1

Мое предположение следующее:

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

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

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

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

Ответ 2

Подумайте об этом так:

(int[]) k, i

int (k[]), (i)

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