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


тип (*имя) ( список_типов_аргументов



бет2/12
Дата06.01.2022
өлшемі1,96 Mb.
#15493
түріУказатель
1   2   3   4   5   6   7   8   9   ...   12
тип (*имя) ( список_типов_аргументов );
Например, объявление:
1nt (*fun) (double, double);
задает указатель с именем fun на функцию, возвращающую значение типа int и имеющую два аргумента типа double.
Указатель на объект содержит адрес области памяти, в которой хранятся данные определенного типа (основного или составного). Простейшее объявление указа­ теля на объект (в дальнейшем называемого просто указателем) имеет вид:
тип *имя:
где тип может быть любым, кроме ссылки (о ссылках рассказывается на с. 57) и битового поля (см. с. 69), причем тип может быть к этому моменту только объяв­ лен, но еще не определен (следовательно, в структуре, например, может присут­ ствовать указатель на структуру того же типа).
Звездочка относится непосредственно к имени, поэтому для того, чтобы объявить несколько указателей, требуется ставить ее перед именем каждого из них. На­ пример, в операторе
1nt *д. Ь. *с;
описываются два указателя на целое с именами а и с, а также целая переменная Ь.
Размер указателя зависит от модели памяти. Можно определить указатель на указатель и т. д.
Указатель на void применяется в тех случаях, когда конкретный тип объекта, ад­ рес которого требуется хранить, не определен (например, если в одной и той же переменной в разные моменты времени требуется хранить адреса объектов раз­ личных типов).
Указателю на void можно присвоить значение указателя любого типа, а также сравнивать его с любыми указателями, но перед выполнением каких-либо дейст­ вий с областью памяти, на которую он ссылается, требуется преобразовать его к конкретному типу явным образом (см. с. 231).
Указатель может быть константой или переменной, а также указывать на кон­ станту или переменную. Рассмотрим примеры:

Как видно из примеров, модификатор const, находящийся между именем указа­ теля и звездочкой, относится к самому указателю и запрещает его изменение,




  1. const слева от звездочки задает постоянство значения, на которое он указывает. Для инициализации указателей использована операция получения адреса &.

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




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




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

    Басты бет