在Delphi7中的Sockets单元中发现了以下这条语句,实在想不明白,请各位指教!
var
len: Integer;
buf: array[0..511] of char;
eolptr: pchar;
begin
eolptr := nil;
...//前面省略
eolptr := strpos(buf, pchar(eol));
if eolptr <> nil then
len := eolptr - buf + length(eol);
...//后面也省略这里的eolptr是一个pchar,buf是数组,length(eol),怎能这样写呢,这样写的意思是什么?
var
len: Integer;
buf: array[0..511] of char;
eolptr: pchar;
begin
eolptr := nil;
...//前面省略
eolptr := strpos(buf, pchar(eol));
if eolptr <> nil then
len := eolptr - buf + length(eol);
...//后面也省略这里的eolptr是一个pchar,buf是数组,length(eol),怎能这样写呢,这样写的意思是什么?
eolptr: pchar; delphi中,pchar是一個指針類型的CHAR,指針當然可以 附值為nil
2:
uses SysUtils;procedure TForm1.Button1Click(Sender TObject);
var
Location: PChar;
begin
if StrPos(PChar(Edit1.Text), PChar(Edit2.Text)) <> nil then
ShowMessage('Substring found')
else
ShowMessage('Substring not found');
end;
(从这个例子中可以看到是返回一个指针,里面的两个参数都是pchar类型的.buf是数组,
数组本来就是地址作业的.)
3:
len := eolptr - buf + length(eol);
len := eolptr - buf + length(eol); 写数组名或者指针名字是指它的地址
地址就是整型的了,可以加减等