Белов, А.В. Микроконтроллеры AVR: от азов программирования до создания практических устройств

266 Микроконтроллеры AVR от азов программирования... Перед тем, как использовать массив, его, как и переменную, нужно описать. Описание массива очень похоже на описание переменной. В общем виде это выглядит следующим образом: Тип Имя [Разм] ; Как и в случае с переменной, сначала указывается тип массива, затем его имя: ♦ тип массива может принимать те же значения, что и тип перемен ­ ной (см. табл. 5.1); ♦ имя массива выбирается в соответствии со стандартными прави ­ лами выбора имен. В квадратных скобках указывается размер массива, то есть количе ­ ство его элементов. В языке СИ при описании массивов необходимо обя ­ зательно указывать их размер, чтобы транслятор мог зарезервировать память для их размещения. Однако в любом месте программы размер массива допускается изменять. Это делается при помощи повторного описания массива, но уже с другим значением размера. Если новый раз ­ мер окажется больше старого, массив просто пополнится новыми чле ­ нами. При этом значения старых членов сохраняются. Если новый раз ­ мер окажется меньше старого, все лишние члены удаляются. Значения удаленных членов массива будут утеряны. Приведем пример описания массива: int rabtab [5]; Описанный выше массив имеет имя rabtab, тип int и количество членов, равное пяти. Теперь посмотрим, как применяются массивы. С любым элементом описанного выше массива можно работать как с отдельной переменной. Например, можно присвоить ему значение: rabtab [1] = 231; //Первому члену массива присваивается // значение 231. Можно, наоборот, значение одного из элементов массива присвоить переменной: х = rabtab [8]; //Переменной х присваивается //значение восьмого элемента массива. Это полезно запомнить. При использовании массива в тексте программы число в квадратных скобках уже означает не размер массива, а номер элемента, с кото ­ рым производится данная операция. Поэтому такое число теперь называется указателем массива. Если размер массива равен N, то указатель массива может принимать значения от 0 до N-1. Если окажется, что значение указателя выходит

RkJQdWJsaXNoZXIy MTExODQxMg==