где
Обратимся к конкретному примеру. Для того чтобы сделать переменную ip указателем на значение типа int, необходимо объявить ее следующим образом.
int* ip;
А указательлтша float объявляется так, как показано ниже.
float* fp;
Вообще говоря, если в операторе объявления после имени типа следует знак *, то это означает, что создается переменная типа указателя.
Тип данных, на которые будет указывать сам указатель, зависит от его соотносимого типа. Поэтому в приведенных выше примерах переменная ip может служить для указания на значение типа int, а переменная fp — для указания на значение типа float. Следует, однако, иметь в виду, что указателю ничто не мешает указыватьна что угодно. Именно поэтому указатели потенциально небезопасны.
Если у вас есть опыт программирования на C/C++, то вы должны ясно понимать главное отличие в объявлении указателей в C# и C/C++. При объявлении указателя в C/C++ знак *
int* р, q;
объявляется указатель р типа int и переменная q типа int. Это равнозначно двум следующим объявлениям.
int* р; int q;
А в C# знак *
int* р, q;
создаются две переменные-указателя. Это равнозначно двум следующим объявлениям.
int* р; int* q;
Это главное отличие следует иметь в виду при переносе кода C/C++ на С#.
Операторы * и & в указателях
В указателях применяются два оператора: * и &. Оператор & является унарным и возвращает адрес памяти своего операнда. (Напомним, что для унарного оператора требуется единственный операнд.) Например, в следующем фрагменте кода:
int* ip; int num = 10; ip = #