Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву
Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Замечание. При работе с указателями все действия по использованию памяти, в том числе по ее очистке, ложится целиком на разработчика, а не на среду 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 с.) |