Array constants(数组常量)
要声明数组常量,把数组元素的值用括号括起来,值之间用逗号隔开,这些值必须是常量表达式。const Digits: array[0..9] of Char = ('0', '1', '2', '3', '4', '5', '6', '7', '8', '9');
它声明一个类型常量Digits,存储一个字符构成的数组。
0基准字符数组经常用来表示零结尾字符串,因为这个原因,字符串常量能用来初始化字符数组。所以上面的声明可以方便地表示为
const Digits: array[0..9] of Char = '0123456789';
要定义一个多维数组常量,把每一维的值用括号括起来,之间用逗号隔开。比如,
type TCube = array[0..1, 0..1, 0..1] of Integer;
const Maze: TCube = (((0, 1), (2, 3)), ((4, 5), (6,7)));
它创建一个叫Maze的数组,这里
Maze[0,0,0] = 0
Maze[0,0,1] = 1
Maze[0,1,0] = 2
Maze[0,1,1] = 3
Maze[1,0,0] = 4
Maze[1,0,1] = 5
Maze[1,1,0] = 6
Maze[1,1,1] = 7
数组常量不能包含文件类型的值。
- 76 - {$J+}type类型比如,
Data types, variables and constants
Record constants(记录常量)
要声明一个记录常量,在括号中使用fieldName: value的形式来指定每个字段的值,每个字段用分号隔开。每个字段的值必须是常量表达式。字段列出的顺序必须和声明的相同,若有tag字段,则必须指定它的值;若记录有一个Variant部分,只有tag字段选定的Variant才能被赋值。
举例如下:
type
TPoint = record
X, Y: Single;
end;
TVector = array[0..1] of TPoint;
TMonth = (Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec);
TDate = record
D: 1..31;
M: TMonth;
Y: 1900..1999;
end;
const
Origin: TPoint = (X: 0.0; Y: 0.0);
Line: TVector = ((X: -3.1; Y: 1.5), (X: 5.8; Y: 3.0));
SomeDay: TDate = (D: 2; M: Dec; Y: 1960);
记录常量不能包含文件类型的值。
Procedural constants(过程常量)
要声明一个过程常量,指定一个和(常量)声明的类型兼容的函数或过程的名字。比如,
function Calc(X, Y: Integer): Integer;
begin
...
end;
type TFunction = function(X, Y: Integer): Integer;
const MyFunction: TFunction = Calc;
给定这些声明,在调用函数时你能使用过程常量MyFunction:
I := MyFunction(5, 7)
你也可以给一个过程常量赋nil值。
Pointer constants(指针常量)
当声明一个指针常量时,你必须给它初始化一个在编译时就能被解析的值,至少是一个相对地址。这有三种方式:使用@运算符、使用nil、和字符串常量(若常量是PChar类型)。比如,若I
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-23665-54.html
你知道吗