Массивный против S++ Производные типы данникс


Основные свойства массивов


Download 26.83 Kb.
bet2/4
Sana27.01.2023
Hajmi26.83 Kb.
#1134020
1   2   3   4

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:
1   2   3   4




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling