Преобразования указателей (Руководство по программированию на C#)
В следующей таблице показаны предопределенные неявные преобразования указателей. Неявные преобразования могут выполняться во многих ситуациях, включая вызов методов и операторы назначения.
Неявные преобразования указателей
Исходный тип |
Целевой тип |
---|---|
Любой тип указателя |
void* |
null |
Любой тип указателя |
Явное преобразование указателя используется для выполнения преобразований, для которых невозможно неявное преобразование, с помощью выражения приведения. В следующей таблице приведено описание этих преобразований.
Явные преобразования указателей
Исходный тип |
Целевой тип |
---|---|
Любой тип указателя |
Любой другой тип указателя |
sbyte, byte, short, ushort, int, uint, long или ulong |
Любой тип указателя |
Любой тип указателя |
sbyte, byte, short, ushort, int, uint, long или ulong |
Пример
В следующем пример указатель на int преобразуется в указатель на byte. Обратите внимание на то, что указатель указывает на наименьший адресуемый байт переменной. При последовательном увеличении результата до размера int (4 байта) можно отобразить оставшиеся байты переменной.
// compile with: /unsafe
class ClassConvert
{
static void Main()
{
int number = 1024;
unsafe
{
// Convert to byte:
byte* p = (byte*)&number;
System.Console.Write("The 4 bytes of the integer:");
// Display the 4 bytes of the int variable:
for (int i = 0 ; i < sizeof(int) ; ++i)
{
System.Console.Write(" {0:X2}", *p);
// Increment the pointer:
p++;
}
System.Console.WriteLine();
System.Console.WriteLine("The value of the integer: {0}", number);
// Keep the console window open in debug mode.
System.Console.WriteLine("Press any key to exit.");
System.Console.ReadKey();
}
}
}
/* Output:
The 4 bytes of the integer: 00 04 00 00
The value of the integer: 1024
*/
См. также
Ссылки
Выражения указателей (Руководство по программированию на C#)
Типы указателей (Руководство по программированию на C#)
Оператор fixed (Справочник по C#)
Основные понятия
Руководство по программированию на C#