第三章 变量和类型变量类型转换


要⽤用给定的输⼊入计算单个表达式的值,并且只执⾏行⼀一次,就没有必要编写完整的软件程序。然而,如果计算过程必须频繁地进行,并且每次输入都不同,那么将这个过程⾃动化是有意义的。

赋值运算符

如果你想转换⻆度(degree)到弧度(RAD),转换公式在Delphi中看起来像这样:

RAD:= (DEGR * 3.14) / 180;

赋值操作符在任何编程语言中都是非常基本和重要的指令。它将赋值符号:=右侧的计算表达式的值赋给赋值符号左侧的变量。赋值符号由两个独立的符号(:和=)组成;然而,在Delphi中它被解释为一个单一的元素。

它内部的工作方式是,⾸先计算赋值操作符右侧表达式的值,然后将结果值赋给赋值操作符左侧的变量。

赋值操作符的格式如下:

<variable name>:= <expression>;

现在,我们来讨论变量。变量是内存中有名称的位置。分配给变量的内存⼤小取决于要写入的值。

理论上,为所有变量只分配⼤内存“槽”是可能的。然而,如果是这种情况,我们将很快耗尽可⽤内存。

为了确切地知道要为一个变量分配多少内存,我们需要知道它的数据类型。

你可以在Delphi中为各种各样的任务和原因使⽤变量。在使⽤变量之前, 需要先定义变量。var关键字⽤用于启动一段变量定义,该变量定义位于过程定义之后,关键字begin之前。变量定义的格式为:

Var
<variable name>: <data type>;

变量名是⼀个字符序列列,语法如下:

• 可以包含字母、数字(0-9)或下划线;
• 必须以字⺟开头;
变量名可以是任意长度(字符数不受限制),不区分大小写。

在考虑为变量命名时,请注意,除了临时变量或循环计数器变量外,应该避免使⽤一个字符的名称。

循环计数器变量的名称是I和j。单字符变量名的其他实例是S(字符串)或 R(半径)。一个字符的变量名应该总是大写的,但最好使用更有意义的名称。建议不要使用字⺟l作为变量名,以免与数字1(1)混淆。

举例:

procedure TfrmMy.btnMyClick(Sender: TObject);
Var
   k: Integer;
begin
end;

在这个例子中,声明了⼀个Integer类型的变量k。

在Delphi中有许多数据类型。让我们来看看其中的⼀些。整数可以用以下数据类型来描述:

Data Type

Range

Representation

Integer

-2,147,483,648 to 2,147,483,647

32-bit, signed

Cardinal

0 to 4,294,967,295

32-bit, positive integers

ShortInt

-128 to 127

8-bit, signed

SmallInt

-32,768 to 32,767

16-bit, signed

LongInt

-2,147,483,648 to 2,147,483,647

32-bit, signed

Int64

-263 to 263–1

64-bit, signed

Byte

0 to 255

8-bit, unsigned

Word

0 to 65535

16-bit, unsigned

LongWord

0 to 4,294,967,295

32-bit, unsigned

在本书中,我们将主要使⽤整数。 实数也可以用各种数据类型表示。我们将使用数据类型Real。

Data Type

Range

Significant Digits (Precision)

Bytes

Real48

±2.9 х 10–39 to ±1.7 x 1038

11-12 6
Real

±5.0 х 10-324 to ±1.7 x 10308

15-16 8
Single ±1.5 x 10-45 to ±3.4 x 1038 7-8 4
Double

±5.0 x 10-324 to ±1.7 x 10308

15-16 8
Extended ±3.6 x 10-4951 to ±1.1 x 104932 19-20 10
Comp

-263 to 263 -1

19-20 8
Currency

-922337203685477.5808
to +922337203685477.5807

19-20 8

你知道⽤于表示实数的标准化科学记数法(也称为基本记数法)。例如:

3,28⋅1017      1,4⋅10–9     -5,101⋅104

在Delphi中,这些数字被记录为:

3.28e+17      1.4e-09      -5.101e+4
328e15         0.14e-8     -5101e+1
0.328e+18     140e-11      -510100e-1

算术表达式

让我们再看一次赋值操作符。左边的数据类型应该与右边算术表达式值的数据类型相匹配。

算术表达式是使用常量、变量、函数、算术运算符(如+、*、-、/和指数) 和括号(和)构建的合法数学表达式。

算术表达式中使⽤的运算符: