Top.Mail.Ru
Ответы
Аватар пользователя
11лет
Изменено
Аватар пользователя
Аватар пользователя
Программирование
+1

Что обозначает символ ^ в программировании на delphi?

Пытаюсь разобраться с передачой файлов через сокет с использованием TMemoryStream
но никак не могу понять что значат эти строки

P: ^Byte;

P := MS.Memory;

Size := Socket.SendBuf(P^, MS.Size);

По дате
По рейтингу
Аватар пользователя
Оракул
11лет

По-хорошему, надо написать так:
Size := Socket.SendBuf(MS.Memory, MS.Size);
Но компилятор это, скорее всего, не прожует - скажет разные типы. Поэтому MS.Memory насильно преобразуется к нетипизированному указателю.
Можно еще вот так писать:
Size := Socket.SendBuf(pointer(MS.Memory), MS.Size);

Аватар пользователя
Мыслитель
11лет

Если стоит перед типом данных, то означает, что новый тип - это указатель на данные первого типа. P: ^Byte значит, что Р - указатель на переменную типа Byte.
Если стоит после идентификатора переменной, означает, что нужно обратится к данным, на которые указывает указатель с таким идентификатором. Т. е. Р^ в нашем примере возвратит переменную типа Byte.

Аватар пользователя
Оракул
11лет

если стоит после -указатель, если перед то помоему это ссылка

Аватар пользователя
Искусственный Интеллект
11лет

Указатель