Белов, А.В. Микроконтроллеры AVR: от азов программирования до создания практических устройств
288 Микроконтроллеры AVR от азов программирования... Итак, ссылочная переменная — это переменная, которая хранит ука затель на другой объект. Таким объектом может быть либо другая пере менная, либо элемент массива. При описании ссылочной переменной перед ее именем ставится символ * (звездочка). Вот как выглядит типич ное описание ссылочной переменной: int *sper; В приведенном примере описывается ссылочная sper переменная, которая может хранить указатель на любую другую переменную или на любой элемент любого массива, но только если эта переменная или массив имеют тип int. Рассмотрим подробнее случай, когда ссылочная переменная указывает на элемент массива. Для того, чтобы поместить в ссылочную переменную указатель, указывающий на нулевой элемент массива mass , достаточно выполнить следующую команду: sper = &mass[0]; Символ «&», поставленный перед переменной или массивом, — это опе рация определения ссылки на объект. Выражение &mass [ 0 ] возвращает указатель на нулевой элемент массива mass. Выражение &mass [ 5 ] возвра щает указатель на пятый элемент. И так далее. Если нас интересует только начало массива, возможна и более простая запись. Допустим, ссылочной переменной sper нужно присвоить значение указателя на начало массива mass (то есть на его нулевой элемент). В этом случае можно записать sper-mass ; Другими словами, в языке СИ имя массива является одновременно и указателем на его начало. Допустим, переменная sper содержит указатель на нулевой элемент массива. Тогда sper +І будет указывать на первый элемент того же мас сива, sper+2 на второй, и так далее. Если теперь переменной sper при своить значение указателя — другой массив, то указанным выше спосо бом мы получим доступ к новому массиву. Таким образом, используя одну и ту же ссылочную переменную, можно обращаться к любому эле менту любого массива. Обращаться к разным элементам одного массива можно и по-другому. Можно увеличивать значение самой ссылочной переменной. Например, если увеличить значение переменной sper на единицу (sper=sper+l), то после этого она будет указывать уже на следующий элемент массива. Хочу обратить ваше внимание на то, что ссылочная переменная хра нит не адрес в памяти, где хранится элемент массива, а именно указатель. Указатель — это не совсем адрес. Если переменная имеет тип char, то она занимает в памяти один байт. Переменная типа int занимает два байта.
Made with FlippingBook
RkJQdWJsaXNoZXIy MTExODQxMg==