ВУЗ:
Составители:
Рубрика:
Инкремент (++) и декремент (--) указателей полностью аналогичен операциям уменьшения и увели-
чения указателя на единицу, т.е. указатель перемещается к соседней ячейке памяти на расстояние дли-
ной sizeof(тип).
В некоторых случаях указатель необходимо переместить к ячейке памяти, начинающейся с адреса,
не кратного размеру участка памяти относительно его базового типа, для чего необходимо в качестве
операндов соответствующих операций использовать числовые значения указателей.
П р и м е р 13
int i, *Pi, *P1;
Pi = &i;
P1 = (int *) ((int) Pi + 1);
11 СЛОЖНЫЕ ТИПЫ ДАННЫХ В ЯЗЫКЕ С
В начале развития программирования очень часто программы обрабатывали переменные, содер-
жавшие только одно значение. Однако сразу же выявились недостатки подобного метода разработки
программ: для большого числа однотипных данных необходимо было держать большое число про-
граммных объектов со своими именами. Выходом из сложившейся ситуации стало введение сложных
типов данных, которые в языке С образованы на основе указателей. Посредством косвенной адресации,
используя константный указатель как базовый адрес, стало возможным, используя одно имя перемен-
ной, адресоваться к целой группе ячеек памяти, которые занимают непрерывный участок в памяти
ЭВМ. Далее рассмотрены сложные типы данных языка программирования С (массив, структура, объе-
динение, файл) и основы работы с ними.
11.1 Массивы
Массив представляет собой объединение конечного числа однотипных данных, хранящихся в памя-
ти компьютера непосредственно друг за другом. Для доступа к конкретному элементу массива необхо-
димо указать его номер в последовательности. В основе идеи массивов лежит заимствованное из мате-
матики понятие матрицы.
Определение одномерного массива в языке С выглядит следующим образом:
тип имя_массива [константное_выражение];
здесь тип – базовый тип элементов массива; имя массива – идентификатор; константное выражение –
определение размера массива (в некоторых случаях может отсутствовать).
Допускается описание массива без явного указания количества элементов в нем:
а) при описании внешнего массива, определенного в другой части программы,
extern long A[];
б) при явной инициализации массива в случае его определения
int А[] = {10,50,1,100};
в этом случае число элементов подсчитывается при обработке компилятором списка инициализации.
Массивы, как и простые переменные, могут инициализироваться при определении. Число элемен-
тов в списке инициализации не должно превышать размеры массива:
int A[5] = {0,1,2,3,4};
short MASSIW[5] = {4,2,0};
Страницы
- « первая
- ‹ предыдущая
- …
- 21
- 22
- 23
- 24
- 25
- …
- следующая ›
- последняя »
