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

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

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

是内置于编译器的,有着特殊的用途。)

Declaring variables(声明变量)

Declaring variables(声明变量)

声明一个变量的基本语法是

var identifierList: type;

这里,identifierList是由逗号隔开的有效标志符的列表,type是任何有效类型。比如,

var I: Integer;

声明一个整数类型的变量I,而

var X, Y: Real;

声明两个变量X和Y,它们是实数(Real)类型。

连续的变量声明没必要重复使用关键字var:

var

X, Y, Z: Double;

I, J, K: Integer;

Digit: 0..9;

Okay: Boolean;

有时,在过程或函数中声明的变量叫做局部变量,而其它变量叫做全局变量。全局变量能在声明时进行初始化,使用语法

var identifier: type = constantExpression;

这里,constantExpression是任何type类型的常量表达式。所以下面的声明

var I: Integer = 7;

相当于声明和语句

var I: Integer;

...

I := 7;

同时声明多个变量(比如var X, Y, Z: Real;)时不能包括初始化,

- 72 - VariantSelf和Result)单元的副本。若你知道自己在做什么,你 和文件类型的变量声明也不能

Data types, variables and constants

初始化。

如果你没有明确地初始化一个全局变量,编译器把它初始化为0。相反,不能在声明局部变量时进行初始化,它们的值是随机的,直到赋给它们一个值。

当你声明变量时,你正在分配内存,当变量不再使用时,这些内存会自动释放。特别是局部变量,它们只存在于程序退出(声明它们的)函数或过程之前。关于变量和内存管理的更多信息,请参考Memory management。

Absolute address(绝对地址)

你可以创建一个新变量,它和另一个变量在内存的同一个位置。要这样做的话,声明这个新变量时在类型名的后面跟关键字absolute,后面再跟一个已存在(先前声明)的变量。比如,var

Str: string[32];

StrLen: Byte absolute Str;

指定变量StrLen从Str的地址开始。因为短字符串的第一个字节包含字符串的长度,的长度。

使用absolute声明时不能初始化变量,也不能组合其它指示字(和Dynamic variables(动态变量)

你可以调用GetMem或New过程来创建动态变量,你创建了这样一个变量,你要负责在最后释放它的内存。使用使用Dispose释放由New创建的变量。其它能作用于动态变量的标准例程包括StrAlloc和StrDispose。

虽然长字符串、宽字符串、动态数组、Variants以及接口也是在堆中分配的动态变量,但它们的内存是自动管理的。

Thread-local variables(线程局部变量)线程局部变量(或线程变量)用于多线程应用程序。线程局部变量类似于全局变量,除了执行的每个线程有自己的这些变量的拷贝,不能从其它线程访问它们。声明线程局部变量时,使用是var,比如,

threadvar X: Integer; 线程变量声明

? 不能出现在过程或函数中 ? 不能包含初始化

? 不能指定absolute指示字

不能创建指针或过程类型的线程变量,也不能在动态调入库中使用线程变量(除了包)由编译器管理的动态变量,即长字符串、宽字符串、动态数组、但编译器不能自动释放由每个线程创建的堆内存。若你使用这些类型的线程变量,你要负责释放它们的内存。比如,


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

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

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