指针的运算

//指针的运算仅对 PChar 类型
procedure TForm1.Button1Click(Sender: TObject);
var
  p: PChar;
begin
  p := 'China';
  Inc(p);
  p := p + 1;
  ShowMessage(p);  //返回:ina

  Dec(p);
  p := p - 1;
  ShowMessage(p);  //返回:China
end;
PChar是一个指针, 它的大小只有32位. 定义时由Delphi自动填0. 要将PChar作为字符串 
使用的话必须自己分配内存用完必须自己释放. PChar型字符串由#0表示字符串结尾
Delphi所提供的相关PChar字符串的操作都是判断#0来决定字符串的结尾的。
因为PChar是指针,所以它能指向任何地方(也就是说它不一定非要指向字符串不可).
把一个String赋值给PChar只是将String中保存具体字符串的内存的地址给PChar
变量. 当然也可以把Char数组第一个元素的地址给PChar.

pchar不是函数,而是数据类型。pchar是个指针类型,指向#0结尾的字符串,比如你看到如下代码:

var s:String;
begin
xxx(pchar(s));//把s强制转换为pchar(string本身也是指针)
//..
end;
posted @ 2013-07-08 23:02  万大侠  阅读(203)  评论(0编辑  收藏  举报