Практическое руководство. Получение адреса переменной (Руководство по программированию на C#)
Чтобы получить адрес унарного выражения (которое оценивается как фиксированная переменная), используйте оператор address-of:
int number;
int* p = &number; //address-of operator &
Оператор address-of можно применять только к переменной. Если переменная является перемещаемой, можно использовать фиксированное предложение, чтобы временно зафиксировать переменную перед получением ее адреса.
Разработчик отвечает за инициализацию переменной. Если переменная не будет инициализирована, на компиляторе не будет отображено сообщение об ошибке.
Невозможно получить адрес константы или переменной.
Пример
В данном примере указатель на int, p объявляется и ему присваивается адрес целочисленной переменной number. Переменная number инициализируется в результате присвоения *p. Если в тексте кода закомментировать присвоение, то инициализация переменной number будет удалена, однако при компиляции не возникнет сообщений об ошибках. Обратите внимание на применение оператора доступа члена -> для получения и отображения адреса, хранящегося в указателе.
// compile with: /unsafe
class AddressOfOperator
{
static void Main()
{
int number;
unsafe
{
// Assign the address of number to a pointer:
int* p = &number;
// Commenting the following statement will remove the
// initialization of number.
*p = 0xffff;
// Print the value of *p:
System.Console.WriteLine("Value at the location pointed to by p: {0:X}", *p);
// Print the address stored in p:
System.Console.WriteLine("The address stored in p: {0}", (int)p);
}
// Print the value of the variable number:
System.Console.WriteLine("Value of the variable number: {0:X}", number);
System.Console.ReadKey();
}
}
/* Output:
Value at the location pointed to by p: FFFF
The address stored in p: 2420904
Value of the variable number: FFFF
*/
См. также
Ссылки
Выражения указателей (Руководство по программированию на C#)
Типы указателей (Руководство по программированию на C#)
Оператор fixed (Справочник по C#)
Основные понятия
Руководство по программированию на C#