

Что обозначает символ ^ в программировании на delphi?
Пытаюсь разобраться с передачой файлов через сокет с использованием TMemoryStream
но никак не могу понять что значат эти строки
P: ^Byte;
P := MS.Memory;
Size := Socket.SendBuf(P^, MS.Size);
По-хорошему, надо написать так:
Size := Socket.SendBuf(MS.Memory, MS.Size);
Но компилятор это, скорее всего, не прожует - скажет разные типы. Поэтому MS.Memory насильно преобразуется к нетипизированному указателю.
Можно еще вот так писать:
Size := Socket.SendBuf(pointer(MS.Memory), MS.Size);
Если стоит перед типом данных, то означает, что новый тип - это указатель на данные первого типа. P: ^Byte значит, что Р - указатель на переменную типа Byte.
Если стоит после идентификатора переменной, означает, что нужно обратится к данным, на которые указывает указатель с таким идентификатором. Т. е. Р^ в нашем примере возвратит переменную типа Byte.
если стоит после -указатель, если перед то помоему это ссылка
Указатель