а) Как оценивается объявление типа массива new int[10][]
? Это оценивается
как (new int[10])[]
или как (new int[10][])
или…?
б) Я не уверен, как спросить это: я знаю, что утверждение int[][] i = (new int[10])[]
даст нам ошибку компилятора. Но если предположить, что компилятор не сообщит об ошибке, какой тип массива будет создан компилятором на основе этого оператора?
РЕДАКТИРОВАНИЕ:
Я прошу прощения за то, что не смог сделать мой вопрос более всеобъемлющим. Это один из тех вопросов, когда что-то беспокоит меня, и я не способен достаточно четко сформулировать вопрос, чтобы понять его. Поэтому я задаю неполные вопросы, надеясь, что ответы помогут мне в этом. В любом случае, это бессмысленный вопрос, но я все же хотел бы объяснить, что я имел в виду под этим:
что все это вызвало, была статья из MSDN, где говорилось
Первичные выражения подразделяются на выражения-создания-массива и выражения первичного-не-создания-массива. Обработка выражения-создания-массива таким способом, а не перечисление его вместе с другими простыми формами выражений, позволяет грамматике запретить потенциально запутанный код, такой как
object o = new int [3] [1];
, который иначе интерпретируется как
object o = (new int [3]) [1];
так что я подумал, что, возможно, круглые скобки вокруг различных частей этого выражения создания массива дадут компилятору разные инструкции относительно типа массива, который он должен создать.
Или, иначе говоря, я подумал, что, возможно, компилятор следует некоторой встроенной логике (полученной из некоторого математического поля) при интерпретации синтаксиса создания / инициализации массива. Другими словами, компилятор не создал массив из-за того, что его разработчики дали ему специальную инструкцию, например «, когда вы видите слова new и name некоторого типа и две пары квадратных скобок ([] []) , затем следуйте этим пошаговым инструкциям, которые подробно расскажут вам, что делать", но вместо этого разработчики просто встраивают некоторые математические логика и тот компилятор был способен извлекать массив самостоятельно, без разработчиков, давая ему пошаговые инструкции.
Кстати - я понимаю о зубчатых и прямоугольных массивах и как они инициализируются и т. Д .;)