Синтаксис указателей

Указатели предназначены для хранения адресов областей памяти. Синтаксис объявления указателя:

тип* переменная;

Здесь тип — это тип величины, на которую указывает переменная, то есть вели­чины, хранящейся по записанному в переменной адресу. Тип не может быть классом, но может быть структурой, перечислением, указателем, а также одним из стандартных типов: sbyte, byte, short, ushort, int, uint, long, ulong, char, float, double, decimal, bool и void. Последнее означает, что указатель ссылается на пере­менную неизвестного типа.

Указатель на тип void применяется в тех случаях, когда конкретный тип объекта, адрес которого требуется хранить, не определен (например, если в одной и той же переменной в разные моменты времени требуется хранить адреса объектов различных типов).

Указателю на тип void можно присвоить значение указателя любого типа, а так­же сравнивать его с любыми указателями, но перед выполнением каких-либо действий с областью памяти, на которую он ссылается, требуется преобразовать его к конкретному типу явным образом.

Примеры объявления указателей:

int* a; // указатель на int

Node* pNode; // указатель на описанную ранее структуру Node

void* p; // указатель на неопределенный тип

int*[] m; // одномерный массив указателей на int

int** d; // указатель на указатель на int

В одном операторе можно описать несколько указателей одного и того же типа, например:

int* a, b, с; // три указателя на int

Указатели являются отдельной категорией типов данных. Они не наследуются от типа object, и преобразование между типом object и типами указателей невоз­можно. В частности, для них не выполняется упаковка и распаковка. Однако до­пускаются преобразования между разными типами указателей, а также указате­лями и целыми.

ПРИМЕЧАНИЕ

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

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


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: