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


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

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

 

Указатели позволяют получить доступ к определенной ячейке памяти и произвести определенные манипуляции со значением, хранящимся в этой ячейке.

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

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

Чтобы использовать указатели в C#, необходимо указать проекту, что он будет работать с небезопасным кодом. Для этого надо установить в настройках проекта соответствующий флаг - в меню Project (Проект) найти Свойства проекта. Затем в меню Build установить флажок Allow unsafe code (Разрешить небезопасный код):

Ключевое слово unsafe

Блок кода или метод, в котором используются указатели, помечается ключевым словом unsafe:

static void Main(string[] args)

{

// блок кода, использующий указатели

unsafe

{

 

}

}

 

Метод, использующий указатели:

unsafe private static void PointerMethod()

{

 

}

 

Также с помощью unsafe можно объявлять структуры:

unsafe struct State

{

 

}

Операции * и &

Ключевой при работе с указателями является операция *, которую еще называют операцией разыменовывания. Операция разыменовывания позволяет получить или установить значение по адресу, на который указывает указатель. Для получения адреса переменной применяется операция &:

static void Main(string[] args)

{

unsafe

{

float* a; // определение указателя

float b = 100; // определяем переменную

 

a = &b; // указатель x теперь указывает на адрес переменной y

Console.WriteLine(*a);

b = b + 20;

Console.WriteLine(*a);

*a = 50;

Console.WriteLine(b);

}

Console.ReadLine();

}

Объявление и использование указателя на указатель:

static void Main(string[] args)

{

unsafe

{

float* a; // определение указателя

float b = 100; // определяем переменную

 

a = &b;

float** c = &x;

**c = **c + 40;

Console.WriteLine(b);

Console.WriteLine(**c);

}

Console.ReadLine();}

ЗАДАНИЕ:

ЗАДАНИЕ:

1) Осуществить изучение материала путем реализации приведенных примеров кода.

2) Ответить на следующие вопросы:

a) Что такое указатель.

b) О чем нужно помнить при работе с указателями в C#/

Источники:

1) [Электронный ресурс]: Метанит, режим доступа: https://metanit.com/

2) [Электронный ресурс]: Docs.microsoft, режим доступа: https://docs.microsoft.com/ru-ru

 



Поделиться:


Последнее изменение этой страницы: 2024-06-17; просмотров: 55; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 216.73.216.198 (0.006 с.)