学了一断时间,你会发现数据类型很重要,特别是在你分析delphi源码时
现在在细细回顾一下
a、 整数类型: (通用类型<32位>:Integer-有符号;Cardinal-无符号)
有符号:Shortint<8位>,Smallint<16位>,Longint<32位 >
无符号:Byte<8位>,Word<16位>,LongWord<32位 >
有符号,最高位用1表示(-)
示例说明下:有符号:shortint(8位) 最小值 1111,1111(-127 ) 最大值 :0111,1111(127)//最高位不是数,是+ - 号
无符号: Byte<8位>,也就是从0到1111,1111(255) //showmessage(inttostr(maxbyte))->255
8位一个字节,一个字节8个二进数组成
var
b:byte;
l:longint;
begin
showmessage(inttostr(sizeof(b)));//结果:1
showmessage(inttostr(sizeof(l)));//结果:4
end;
longint就是常用的integer;
而cardinal就是LongWord;
b、字符类型: (通用类型<8位>:Char -与AnsiChar等同)
AnsiChar<8位> :主要存放Ansi字符
WideChar<16位>:主要存放Unicode字符
常用的char就是指 AnsiChar<8位>
var
i:widechar;
begin
showmessage(inttostr(length(i)));//结果:1
showmessage(inttostr(sizeof(i)));//结果:2,说明占用两个字节内存
end;
c、 字符串类型
ShortString :最多存放255个字符,第一个自己存放字符个数,不以NULL结尾
AnsiString :存放Ansi字符,以NULL结尾(也是string)
WideString:存放Unicode字符,以NULL结尾
var
ss:string;
s:shortstring;
begin
edit1.Text:=inttostr(sizeof(ss));// 4
edit2.Text:=inttostr(length(ss));// 0 大小为4,说明分了4个字节内存,长度为0说明用时自动分配
edit3.Text:=inttostr(sizeof(s));// 255
edit4.Text:=inttostr(length(s));// 4 已经分配了大小长度,固定了
end;
如果你给shortstring一个值
s:='(这里面有256个)';
你运行就提示错误,并提示只能放255个
posted on 2009-02-03 16:47
小叶子 阅读(1630)
评论(0) 编辑 收藏 引用 所属分类:
笔记