Добавлено: 12 ноя 2004, 14:19
Как говорят в Одессе, две большие разницы. Я вообще от Delphi ожидал более сурового подхода при typecast'инге.Какая разница, чего там хранится
форум программистов
https://www.developing.ru/
Как говорят в Одессе, две большие разницы. Я вообще от Delphi ожидал более сурового подхода при typecast'инге.Какая разница, чего там хранится
Надеюсь, расставлю все точки над i следующим разъяснением.Я вообще от Delphi ожидал более сурового подхода при typecast'инге.
Ты приводишь указатель типа PChar (т.е. ^Char) к целочисленному типу Integer, а не указателю типа ^Integer. Если бы написал так:Правда, что происходит в этом примере как-то не очень мне понятно:
Код:
var P: Pointer;
begin
P:=PChar('1234567890ABCDEFGHIJKLMN');
Inc(Integer(P),2);
ShowMessage(PChar(P));
end;
Я подразумевал Inc(pInteger(P),2); Здесь всё понятно - указатель сдвинули на 8 байтов, т.к. указатель на Integer имеет размер 4 байта. А что за фигня Integer(P)? Ведь в P хранится отнюдь не Integer...
Код: Выделить всё
type PInteger = ^Integer;
Inc(PInteger(P),2);
Нетипизированный (просто Pointer) - да, а типизированный допускает 1 ар.действие - вычитаниеТип pointer (указатель) не допускает арифметических действий