14. Адресная арифметика (сложение и вычитание указателя с числом, сравнение указателей,
вычитание указателей). Связь между указателями и массивами. Примеры с массивами и матрицами.
Адресная арифметика - это способ вычисления адреса какого-либо объекта при помощи арифметических операций над указателями, а также использование указателей в операциях сравнения.
Если p и q указывают на элементы одного массива, то к ним можно применять операторы отношения ==, !=, <, >= и т. д.
p < q истинно, если p указывает на более ранний элемент массива, чем q.
Сложение и вычитание указателей с целым числом
Конструкция p + n означает адрес объекта, занимающего n-е место после объекта, на который указывает p.
Это справедливо к любому типу объекта, на который указывает p; n автоматически домножается на коэффициент, соответствующий размеру объекта.
Результатом вычитания указателей р – q является целое значение, равное расстоянию между адресами, содержащимися в указателях
Связь между указателями и массивами
В Си существует связь между указателями и массивами (матрицами). Доступ к любому элементу массива (матрицы), может быть выполнен с помощью указателя.
Название массива - указатель на его первый элемент.
arr == arr[0] == *arr;
arr[1] == *(arr + 1)
Если мы разыменуем название матрицы, то получим указатель на первую строку матрицы. Дважды разыменуем – получим указатель на первый элемент первой строки матрицы.
mat[0][] == *mat
mat == mat[0][0] == **mat
mat[3][4] == *(*(mat + 3) + 4)
Last updated