Массивный против S++ Производные типы данникс
Основные свойства массивов
Download 26.83 Kb.
|
3. Основные свойства массивовПервое специальное свойство массивов заключается в том, что определение массива предполагает обязательное указание его размеров. Зафиксировать размер массива мойно различными способами (о ниx мы уйе говорили), однако это необходимо сделать непосредственно в момент его объявления, в соответствующем операторе объявления. В модулях многомодульной программы массив опредляется в одном из модулей (в основном модуле) программы. В остальныx модулях при объявлении этого массива используется спецификатор вн. Аналогичная реклама может быть включена в основной модуль. Главное, чтобы передатчик мог различать объявления и собственное определение. В объявлениях со спецификатором экстерн мойно указывать произвольные размеры объявляемого массива (лишь они были описания в виде постоянного выражения), а мойно ix и не указывать вовсе - переводчик все равно ix не читает. int intArray1[10] = {0,1,2,3,4,5,6,7,8,9}; внешний массив1[]; внешний массив1[1000]; Казалось бы, если переводчик все равно не читает значение постоянного выражения в объявлении, почему бы там не записать выражение, содержащее переменные? инт ArrVal = 99; внешний intArray1[ArrVal + 1]; /*Однако этого сделать нельзя. ArrVal не является постоянным выражением.*/ Но зато он очень строгий следит за поп ытками повторной инициализации. extern intArray1[10] = {9,9,9,}; /*Здесь будет зафиксирована ошибка. Хотя, если в объявлении не проверяется размерность массива, какой смысл реагировать на инициализацию*/ Второе свойство массивов закрыто, так что объектному типу массива нельзя присвоить никакого другого значения, так как значением массива является аналогичный тип и размер: char chArray_1[6]; char chArray_2[] = {'q', 'w', 'e', 'r', 't', 'y'}; Попытка использовать оператор присвоения винта массив_1 = массив_2; вызывает сообщение об ошибке, сут которой сводится к уведомлению, что выражение чАррай_1 не является левопустимым выражением. Download 26.83 Kb. Do'stlaringiz bilan baham: |
ma'muriyatiga murojaat qiling