Указатели и массивы Указатели



бет7/12
Дата06.01.2022
өлшемі1,96 Mb.
#15493
түріУказатель
1   2   3   4   5   6   7   8   9   ...   12
Арифметические операции с указателями (сложение с константой, вычитание, инкремент и декремент) автоматически учитывают размер типа величин, адре­ суемых указателями. Эти операции применимы только к указателям одного типа


  1. имеют смысл в основном при работе со структурами данных, последовательно размещенными в памяти, например, с массивами.


Инкремент перемещает указатель к следующему элементу массива, декремент


  1. предыдущему. Фактически значение указателя изменяется на величину sizeof (тип). Если указатель на определенный тип увеличивается или уменьшает­ ся на константу, его значение изменяется на величину этой константы, умножен­ ную на размер объекта данного типа, например:




Разность двух указателей — это разность их значений, деленная на размер типа в байтах (в применении к массивам разность указателей, например, на третий и шестой элементы равна 3). Суммирование двух указателей не допускается.
При записи выражений с указателями следует обращать внимание на приорите­ ты операций. В качестве примера рассмотрим последовательность действий, за­ данную в операторе
*р++ = 10;
Операции разадресации и инкремента имеют одинаковый приоритет и выполня­ ются справа налево, но, поскольку инкремент постфиксный, он выполняется по­ сле выполнения операции присваивания. Таким образом, сначала по адресу, за­ писанному в указателе р, будет записано значение 10, а затем указатель будет увеличен на количество байт, соответствующее его типу. То же самое можно за­ писать подробнее:
*р = 10: Р++;
Выражение (*р)++. напротив, инкрементирует значение, на которое ссылается указатель.

Унарная операция получения адреса & применима к величинам, имеющим имя и размещенным в оперативной памяти. Таким образом, нельзя получить адрес ска­ лярного выражения, неименованной константы или регистровой переменной. Примеры операции приводились выше.


Ссылки
Ссылка представляет собой синоним имени, указанного при инициализации ссылки. Ссылку можно рассматривать как указатель, который всегда разымено­ вывается. Формат объявления ссылки:


Достарыңызбен бөлісу:
1   2   3   4   5   6   7   8   9   ...   12




©emirsaba.org 2024
әкімшілігінің қараңыз

    Басты бет