b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

pascal 视频教程_pascal和basic_pascal选择排序(36)

电脑杂谈  发布时间:2016-12-28 07:02:37  来源:网络整理

符指针,P[0]和P^是相同的,它们指的都是数组中的第1个字符,P[1]是数组中的第

推。P[-1]指的是紧靠P[0]左边的‘字符’(注:这里可以是任何值),编译器对这些索引并不进行边界检查。 (generates ,并给函 。比如 MyPointer[0]返回P是一个字2个字符,依此类

- 53 - 字符,这和下面的效类型的常量,比如:

Data types, variables and constants

下面的StrUpper函数,演示了使用指针索引对一个零结尾字符串进行遍历操作:

function StrUpper(Dest, Source: PChar; MaxLen: Integer): PChar;

var

I: Integer;

begin

I := 0;

while (I < MaxLen) and (Source[I] <> #0) do

begin

Dest[I] := UpCase(Source[I]);

Inc(I);

end;

Dest[I] := #0;

Result := Dest;

end;

Mixing Pascal strings and null-terminated strings(混合使用Pascal字符串和零结尾字符串)

在表达式和赋值语句中,你可以混合使用长字符串(AnsiString)和零结尾字符串(PChar),并且,对使用长字符串的函数或过程,你也可以通过PChar进行传值。赋值语句:S := P(这里,S是一个字符串,P是一个PChar表达式),把一个零结尾字符串拷贝到长字符串中。(注:长字符串是动态分配内存的,并在堆中分配,所以,它是把P指向的字符串复制到自己的内存区。)

在二元操作中,如果一个运算数是长字符串,而另一个是PChar,PChar将被转换为长字符串类型。(注:怎么转换呢?应该是复制一个吧。)

你可以把一个PChar值强制转换为长字符串,当要对两个PChar进行(长)字符串操作时,这就非常有用。比如:

S := string(P1) + string(P2);

你也可以把一个长字符串强制转换为零结尾字符串,以下是适用规则:

z 若S是一个长串表达式,PChar(S)把S转换为零结尾字符串,它返回一个指针,这个指针指向

S中的第1个字符。

在Windows下:比如,若Str1和Str2是长字符串,你可以这样调用Win32 API函数MessageBox: MessageBox(0, PChar(Str1), PChar(Str2), MB_OK);

在Linux下:比如,若Str是一个长字符串,你可以这样调用系统函数opendir:

opendir(PChar(Str));

z 你也能使用Pointer(S)把一个长字符串转换为无类型指针,当S为空时,转换返回nil。

z 当把一个长串变量转换为指针时,直到变量被赋一个新值或超出范围,否则指针都将是有效的。

而转换其它长串表达式时,只有在发生转换的语句中,这个指针才是有效的。

z 当转换一个长串表达式为指针时,通常要把指针作为只读的。只有满足所有以下条件时,你才能

安全地使用指针修改长字符串:

9 表达式是一个长串变量;

9 字符串非空;

9 字符串是唯一的,也就是引用计数为1。要保证字符串是唯一的,调用SetLength、SetString

或者UniqueString过程。

9 转换发生后,字符串没有被修改过;

- 54 -

Data types, variables and constants


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-23665-36.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    • 周文王
      周文王

      不容易的日子早就过去了

    • 张新新
      张新新

      最终受害的始终都是消费者

    热点图片
    拼命载入中...