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

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

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

标准函数Length返回一个字符串的字符个数;SetLength设置一个字符串的长度。

对字符串的比较,是比较它们对应位置上的字符大小(顺序)。对长度不等的字符串,较长字符串上多余的字符被认为较大(若前面没有比较出大小)。例如,'AB'比'A'大,也就是说,'AB' > 'A'返回True。零长度的字符串有最小值。

你可以像数组一样对字符串使用索引。若S是一个字符串变量,i是一个整数表达式,则S[i]表示S中第i个字符(或者,严格说来,是第i个字节)。对于ShortString或AnsiString,S[i]是AnsiChar类型;对于WideString,S[i]是WideChar类型。语句 MyString[2] := 'A'; 把值A赋给MyString的第2个字符。下面的代码使用UpCase函数把MyString转换为大写:

var I: Integer;

begin

I := Length(MyString);

while I > 0 do

begin

MyString[I] := UpCase(MyString[I]);

I := I - 1;

end;

- 50 -

Data types, variables and constants

end;

像这样对字符串使用索引要非常小心,因为重写一个字符串的结尾时会导致访问违规。而且,要避免传递长串的索引作为var参数,因为这样会降低效率。

你可以把一个字符串常量(或返回一个字符串的表达式)赋给一个变量,在赋值发生时,字符串的长度能动态改变。比如:

MyString := 'Hello world!'; MyString := 'Hello ' + 'world'; MyString := MyString + '!';

MyString := ' ';{ space }

MyString := '';{ empty string }

Short strings(短字符串)

一个ShortString可包含0到255个字符。它的长度能动态改变,它被字节存储串的长度,剩下的255个字节存储字符。若(S)一样,将返回S的长度;给S[0]赋值,就像调用位ANSI字符,保留它只是为了向后兼容性。

Object Pascal支持short-string类型(实际上,它是255之间的任何值。它通过在保留字string的后面添加一对包含数字的中括号来声明。比如var MyString: string[100];

声明一个叫做MyString的变量,它的最大长度是type CString = string[100]; var MyString: CString;

像这样声明的变量,它们只分配所需的内存,也就是指定的最大长度加上一个字节。在我们的例子中,MyString使用101个字节,相比之下,使用内置的当给一个short-string变量赋值时,多于它最大长度的部分将被截取掉标准函数High和Low能作用于short-string类型名和变量,Long strings(长字符串)

AnsiString类型又称为长字符串,它可以动态分配,并且长度只受内存限制。它使用长串变量是一个指针,占据4个字节的内存。当变量为空时(也就是长度为此时,它不需要额外的内存;当变量为非空时,一个32位的长度指示器,一个32位的引用计数器。不需要自己编写代码。

因为长串变量是指针,所以,两个或更多的变量可以引用同一个值,而不必使用额外的内存。编译器利用这一点节省资源和进行快速赋值。只要一个长串变量被销毁或赋给一个新值,原来的串(变量的前一个值)引用计数减1,而新的值(如果有的话)引用计数加过程被称为reference-counting。当使用字符串索引改变其中的一个字符时,若字符串的引用计数大于将生成串的一个拷贝,这被称为copy-on-write机制。静态分配256字节的内存:第1个S是一个ShortString变量,Ord(S[0]),和LengthSetLength,将改变S的长度。ShortString使用8ShortString的子类型),它的最大长度可以是从0到 字节,这和以下的声明效果相同


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

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

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