在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),怎能这样写呢,这样写的意思是什么?

解决方案 »

  1.   

    1:
    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); 写数组名或者指针名字是指它的地址
       地址就是整型的了,可以加减等
       
      

  2.   

    如楼上所说;len的结果就是buf中到字符串eo1为止的字符串长度;