LINUX.ORG.RU

История изменений

Исправление praseodim, (текущая версия) :

Это не работает для произвольных типов, не говоря уже о составных типах. ЕМНИП нельзя преобразовать число в указатель.

Можно. Все можно преобразовать, есть только одно ограничение: размер типа слева должен быть не меньше, чем справа.

И какой же будет результат? Я прям теряюсь в догадках, ведь 'a' это массив... лол.

Да, массив не выйдет так, надо перед преобразованием явно указать элемент. Или можно завести промежуточный тип, а можно немного через одно место, но через адрес

var
   a:array[0..9] of integer;
   b:Char;

....

b=Char(Pointer(@a)^);  //Берется адрес a и разыменовывается как указатель на неопределенный тип

Исходная версия praseodim, :

Это не работает для произвольных типов, не говоря уже о составных типах. ЕМНИП нельзя преобразовать число в указатель.

Можно. Все можно преобразовать, есть только одно ограничение: размер типа слева должен быть не меньше, чем справа.

И какой же будет результат? Я прям теряюсь в догадках, ведь 'a' это массив... лол.

Да, массив не выйдет так, надо перед преобразованием явно указать элемент. Или можно завести промежуточный тип, а можно немного через одно место, но через адрес

var a:array[0..9] of integer; b:Char;

....

b=Char(Pointer(@a)^); //Берется адрес a и разыменовывается как указатель на неопределенный тип