Delphi变量不区分大小写
Delphi变量可以用下划线开头
常量声明格式:
const
变量名1 := 常量值1;
变量名2 := 常量值2;
变量声明格式:
var
变量名1 : 数据类型;
变量名2, 变量名3, 变量名4 : 数据类型;
在过程或函数中定义的变量都是局部变量,其它的都为全局变量
全局变量系统会自动初始化,Integer = 0, string = ''
局部变量如果没有显示初始化,则为一个随机数
简单类型包括有序类型和实数类型
有序类型定义了一个有序的数值范围,除了第一个值外,均有前一个值。
有序类型包括Integer、Cardinal(无符号大正数)、字符型(Char,单个字符)、布尔值、枚举、子界类型
定义枚举
type
TWeekDay = (SunDay, Monday);
枚举类型的意义是用有意义的值代替状态值
Ord(Monday):判断枚举值的位置,从0开始
子界类型:用于限定数据取值范围
定义字界类型:
type
Age = 10..18:--定义了一个age类型,它是Int类型的,只能取10到18间的值
Extended、Float、Double:实数类型
TDateTime:日期,实质是一个double型的数据
一个有趣的类型转换:
var a: Integer; b: Double; c:DateTime;
begin
a := 10;
b := a + 0.5;
c := b; //c = '1900-01-09 12:00:00'
end;
dateTimeToStr():将日期转换为字符串,格式与计算机的日期格式有关,故不常用
FormatDateTime('yyyy-mm-dd hh:nn:ss.zzz', MyDate):
IntToStr()
字符串类型:
ShortString: maxL = 255
AnsiString: 单字节字符串,一个中文占两个字节,一个英文占一个字节。MaxL = 20亿,有引用计数
WideString: 双字节字符串,不管中英文,通通占两个字节。MaxL = 20亿,无引用计数、
UnicodeString:MaxL = 20亿,有引用计数
string = UnicodeString
字符串用单引号
栈的读写速度很快,堆的容量最多可以是整个内存大小
对于占空间小的变量,可以保存在栈中
如果变量的值很大或是复杂类型的变量,则将变量的值保存在堆中,在栈中保存指向该堆地址的指针和变量名
引用计数:堆中某块地址被引用的次数,为0则自动释放这段内存。
字符串一旦创建,就不能更改,对字符串的更改本质上是重新new一个字符串(和Java中的String类有点像)
结构类型:
集合类型:set of 基本类型,一般与+并集、-差集、*交集、In成员检测配合使用
例: var age = set of 1..10;
数组类型:
array of 数据类型
array[数组下标..数值上标] Of Integer
二维数组:array[row1Down..row1Up, row2Down..row2Up] of ..
var arr : array of Integer
SetLength(arr, length); {动态设置数组长度}
记录类型:和SQL中的变量表相似,用于记录一整套的相关信息。(和Java中的类相似)
定义记录类型:
type
类型名 = Record
...各种变量声明
end;
指针类型:保存指定类型的变量的所在地址
var
指针名 : ^数据类型
@变量名 :获得该变量的地址
指针名^ :获取该指针指向的地址保存的值
流程控制语句:
if...then ...else
Case
For循环: for i = 0 to 10 do
for i = 10 downto 0 do
break、Continue