Оглавление:
Определение - Что означает оператор косвенности?
Оператор косвенного обращения в контексте C # - это оператор, используемый для получения значения переменной, на которую указывает указатель. Хотя указатель, указывающий на переменную, обеспечивает косвенный доступ к значению переменной, хранящейся в ее адресе памяти, оператор косвенного обращения разыменовывает указатель и возвращает значение переменной в этом месте памяти. Операция косвенного обращения - это унарный оператор, представленный символом (*).
Оператор косвенного обращения может использоваться в указателе на указатель на целое число, одномерный массив указателей на целые числа, указатель на символ и указатель на неизвестный тип.
Оператор косвенного обращения также известен как оператор разыменования.
Techopedia объясняет оператор косвенного обращения
Символ (*) используется при объявлении типов указателей и при выполнении перенаправления указателя, а оператор address-of () возвращает адрес переменной. Следовательно, оператор косвенности и оператор адресации являются противоположностями друг друга.
C # позволяет использовать указатели только в небезопасном регионе, что подразумевает, что безопасность кода в этом регионе не проверяется общеязыковой средой исполнения (CLR). В небезопасном регионе оператору косвенности разрешается чтение и запись в указатель. Следующие операторы C # иллюстрируют использование оператора косвенности:
- int a = 1, b; // строка 1
- int * pInt = & a; // строка 2
- b = * pInt; // строка 3
Оператор косвенного обращения должен использоваться для разыменования действительного указателя с адресом, выровненным по типу, на который он указывает, чтобы избежать неопределенного поведения во время выполнения. Его не следует применять к пустому указателю или выражению, которое не относится к типу указателя, чтобы избежать ошибок компилятора. Однако после приведения пустого указателя к правильному типу указателя можно использовать оператор косвенности.
При объявлении нескольких указателей в одном операторе оператор косвенности должен записываться только один раз с базовым типом, а не повторяться для каждого имени указателя. Оператор косвенного обращения является дистрибутивным в C #, в отличие от C и C ++. Когда оператор косвенности применяется к нулевому указателю, это приводит к поведению, определяемому реализацией. Поскольку этот оператор используется в небезопасном контексте, ключевое слово unsafe следует использовать перед ним вместе с параметром / unsafe во время компиляции. Это определение было написано в контексте C #
