Ответ в том, что он не компилируется. Вы получите следующую ошибку:
ошибка CS0214: указатели и буферы фиксированного размера могут использоваться только в небезопасном контексте
Если, однако, вы напишите это:
int ptr1 = 0;
unsafe {
int* ptr2 = &ptr1;
*ptr2 = 220;
}
Console.WriteLine(ptr1);
Тогда вы действительно получите 220.
Вы также можете создать целый небезопасный метод вместо создания определенных небезопасных блоков:
public unsafe void Something() {
/* pointer manipulation */
}
Примечание : вам также необходимо скомпилировать с параметром / unsafe (отметьте «Разрешить небезопасный код» в свойствах проекта в Visual Studio)
Редактировать : Взгляните на Забавный указатель с binky для короткого, забавного, но информативного видео об указателях.