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

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

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

例如,下面的类型声明可以用于存储零结尾字符串:

type

TIdentifier = array[0..15] of Char;

TFileName = array[0..259] of Char;

- 52 -

Data types, variables and constants

TMemoText = array[0..1023] of WideChar;

当启用扩展语法时({$X+},这是默认的),你可以把一个字符串常量,赋给一个0下标开始的静态字符数组(动态数组此时不能工作)。当用字符串常量初始化一个字符数组时,若字符串的长度比数组声明的长度要短,其余的字符被设置为#0。(注:当用字符串常量给一个字符数组赋值时,结果也总是如此。) Using pointers, arrays, and string constants(使用指针、数组和字符串常量) 要操作零结尾字符串,要经常需要指针。字符串常量和类型PChar、PWideChar是赋值兼容的,后两者表示指针,它们指向一个以0结尾的Char或WideChar字符数组。比如:

var P: PChar;

...

P := 'Hello world!'; (注:编译器在字符串的末尾添加一个NULL)

使P指向一个内存区域,在这里存储着'Hello world!' ,它的结尾被添加一个NULL

果相同:

const TempString: array[0..12] of Char = 'Hello world!'#0;

var P: PChar;

...

P := @TempString; (注:和P := TempString相同)

另外,对于使用PChar或PWideChar类型、并采用传值或常量参数的函数,你也可以给它传递字符串常量,比如StrUpper('Hello world!')。当给PChar赋值时,编译器创建一个以0结尾的字符串的拷贝a null-terminated copy of the string。注:其实只有一个字符串,PChar变量是一个指向它的指针)数传递一个指向这个拷贝的指针。当然,你也可以初始化一个PChar或PWideChar

const

Message: PChar = 'Program terminated';

Prompt: PChar = 'Enter values: ';

Digits: array[0..9] of PChar = (

'Zero', 'One', 'Two', 'Three', 'Four',

'Five', 'Six', 'Seven', 'Eight', 'Nine');

0下标开始的字符数组和PChar以及PWideChar兼容。当使用字符数组代替一个指针(值)时,编译器把数组转换为一个指针常量,它的值对应于数组的第一个元素的地址(也就是数组的地址)var

MyArray: array[0..32] of Char;

MyPointer: PChar;

begin

MyArray := 'Hello';

MyPointer := MyArray; (注:和@MyArray相同)

SomeProcedure(MyArray);

SomeProcedure(MyPointer);

end;

上面的代码使用同一个值调用SomeProcedure两次。

一个字符指针(PChar或PWideChar)可以像数组一样使用索引。在上面的例子中,

字符H。索引实际上指定了一个偏移量(对PWideChar变量,索引自动乘以2)。这样,如果


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

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

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