当前位置:首页 > 网络编程 > 软件语言 > DELPHI > Delphi的类型换

Delphi的类型换

点击次数:61 次 发布日期:2008-11-09 08:40:58 作者:源代码网
源代码网推荐
广告载入中
  Delphi是一种强类型转换的语言。在VC中,赋值符用″=″,例如x=1;到了Delphi赋值符就变成了″:=″,例如x:=1。 从赋值时用符号″:=″而不用″=″,就隐约可见Delphi对类型匹配要求之严,即赋值符右边的类型一定要和左边一致。用惯了VB或VC的程序员,初用Delphi,稍不留神,就会出现类型不匹配的错误。对初学者而言,类型转换也是学习Delphi的重点和难点,为此本文特对Delphi的类型转换做一总结,以供读者参考。
源代码网推荐
源代码网推荐 一、数的类型转换
源代码网推荐
源代码网推荐
源代码网推荐   把表达式的类型从一种类型转化为另一种类型,结果值是把原始值截断或扩展,符号位保持不变。例如:
源代码网推荐
源代码网推荐 数的类型转换
源代码网推荐 举例
源代码网推荐
源代码网推荐 字符转换为整数
源代码网推荐 Integer("A")
源代码网推荐
源代码网推荐 整数转换为字符
源代码网推荐 Char(48)
源代码网推荐
源代码网推荐 整数转换为1个字节的逻辑型
源代码网推荐 Boolean(0)
源代码网推荐
源代码网推荐 整数转换为2个字节的逻辑型
源代码网推荐 WordBool(0)
源代码网推荐
源代码网推荐 整数转换为4个字节的逻辑型
源代码网推荐 LongBool(0)
源代码网推荐
源代码网推荐 整数转换为10进制pascal型字符串
源代码网推荐 caption:=intToStr(15)
源代码网推荐
源代码网推荐 整数转换为16进制pascal型4位字符串
源代码网推荐 caption:=intToHex(15,4)
源代码网推荐
源代码网推荐 地址转换为长整型数
源代码网推荐 Longint(@Buffer)
源代码网推荐


源代码网推荐
源代码网推荐
源代码网推荐
源代码网推荐
源代码网推荐 二、数的“分开”与“合成”
源代码网推荐
源代码网推荐 取32位longint型数的高16位数为
源代码网推荐 hiword(longint-var)
源代码网推荐
源代码网推荐 低16位数为
源代码网推荐 loword(longint-var)
源代码网推荐
源代码网推荐 取16位数的 高8位数
源代码网推荐 hibyte(integer_var)
源代码网推荐
源代码网推荐 低8位数为
源代码网推荐 lobyte(integer_var)
源代码网推荐
源代码网推荐 取32位地址的段选择符和偏移量 段选择符(高16位地址)为
源代码网推荐 selectorof(p)
源代码网推荐
源代码网推荐 偏移量(低16位地址)为
源代码网推荐 offsetof(p)
源代码网推荐
源代码网推荐 段选择符和偏移量合成为指针
源代码网推荐   Ptr(SEG, OFS: Word)相当于C语言的宏MK-FP(SEG,OFS)
源代码网推荐
源代码网推荐 例如在Windows中,Task DataBase结构0FAh偏移处包含"TD"标识,我们可以容易地编写如下代码观察到这个位于Windows内部的未公开的秘密:
源代码网推荐
源代码网推荐   {函数ptr(seg,ofs)的用法,相当于C语言的MK-FP(seg,ofs)}
源代码网推荐
源代码网推荐   var p:pbyte;ch:char;
源代码网推荐
源代码网推荐   p:=ptr(getcurrentTask,$FA);
源代码网推荐
源代码网推荐   ch:=char(p^); {结果为ch="T"}
源代码网推荐
源代码网推荐   p:=ptr(getcurrentTask,$FA 1);
源代码网推荐
源代码网推荐   ch:=char(p^);   {结果为ch="D"}
源代码网推荐
源代码网推荐
源代码网推荐
源代码网推荐
源代码网推荐
源代码网推荐 三、字符串string 字符数组与指向字
源代码网推荐
源代码网推荐   符串的指针pchar的区别与联系
源代码网推荐
源代码网推荐   这3者的基本概念相同,但有一些非常细微的差别,在编程时稍不注意就会出错,需高度重视。
源代码网推荐
源代码网推荐   1、使用指向字符串的指针,如果不是以0结尾,运行时就会出现错误。为了避免这种错误,需要在字符串结尾人工加入0 即char(0),或用strpcopy函数在字符串结尾自动加0。
源代码网推荐
源代码网推荐   例1: 指向字符串的指针,如果不是以0结尾,运行时会出现错误:
源代码网推荐
源代码网推荐   {s[0]=3 s[1]="n" s[2]="e" s[3]="w"}
源代码网推荐
源代码网推荐   var
源代码网推荐   s:string;
源代码网推荐 p:pchar;
源代码网推荐   begin
源代码网推荐   s:="new";
源代码网推荐   label1.caption:=s; {new}
源代码网推荐  label2.caption:=intTostr(integer(s[0]));{3是字符串的长度}
源代码网推荐
源代码网推荐   p:=@s[1];{不是以0结尾,莫用pchar型指针}
源代码网推荐    label3.caption:=strpas(p); {运行时出现错误}
源代码网推荐   end;
源代码网推荐
源代码网推荐
源代码网推荐   例2:在字符串结尾人工加入0即char(0),可使用指向字符串的指针。
源代码网推荐
源代码网推荐   {s[0]=4 s[1]="n" s[2]="e" s[3]="w" s[4]=0;}
源代码网推荐   {p-->"new"}
源代码网推荐   var
源代码网推荐 s:string;
源代码网推荐 p:pchar;
源代码网推荐   begin
源代码网推荐   p:=@s[1];
源代码网推荐   s:="new" char(0); {以0结尾,可用pchar型指针}
源代码网推荐   label1.caption:=strpas(p); {new}
源代码网推荐   label2.caption:=s; {new}
源代码网推荐    label3.caption:=intTostr(integer(s[0])); {4是字符串长度  end;
源代码网推荐
源代码网推荐
源代码网推荐   例3: 用strpcopy函数赋值会在字符串s结尾自动加0。
源代码网推荐
源代码网推荐   {s[0]=4 s[1]="n" s[2]="e" s[3]="w" s[4]=0;}
源代码网推荐   {p-->"new"}
源代码网推荐   var
源代码网推荐 s:string;
源代码网推荐 p:pchar;
源代码网推荐   begin
源代码网推荐   p:=@s[1];
源代码网推荐  strpcopy(p,"new");{strpcopy函数在字符串结尾自动加0}
源代码网推荐   label1.caption:=strpas(p);{new}
源代码网推荐    label2.caption:=s;{new}
源代码网推荐   label3.caption:=intTostr(integer(s[0]));{4}
源代码网推荐   end;
源代码网推荐
源代码网推荐
源代码网推荐   2、下标为0的字符串标识符存放的是字符串长度,字符型数组基本相当于字符串,但不能存放字符串长度。字符串可以用s:="a string"的形式赋值,但是字符型数组a[ ]不可直接用a:="array"的形式赋值,用此种形式会出现类型不匹配错误,可选用strpcopy函数赋值。
源代码网推荐
源代码网推荐
源代码网推荐   例4: 字符型数组s[ ]相当于字符串,但没有存放字符串长度的位置。
源代码网推荐
源代码网推荐   {s[1]="n" s[2]="e" s[3]="w" s[4]=0;}
源代码网推荐   {p-->"new"}
源代码网推荐   var
源代码网推荐 s:array[1..10] of char;
源代码网推荐 p:pchar;
源代码网推荐   begin
源代码网推荐   {s:="new" char(0); error}{错误}
源代码网推荐   p:=@s[1];
源代码网推荐   {p:=@s; is not correct}
源代码网推荐   strpcopy(p,"new");
源代码网推荐   label1.caption:=strpas(p);{new}
源代码网推荐   label2.caption:=s;{new}
源代码网推荐    {label3.caption:=intTostr(integer(s[0]));}{不会出现4, 下
源代码网推荐 超出错误}
源代码网推荐   end;
源代码网推荐
源代码网推荐
源代码网推荐   例5:下标从0开始的字符数组s,s相当于@s[0]。
源代码网推荐
源代码网推荐   { s[0]="n" s[1]="e" s[2]="w" s[3]=0;}{p-->"new"}
源代码网推荐   var
源代码网推荐 s:array[1..10] of char;
源代码网推荐 p:pchar;
源代码网推荐   begin
源代码网推荐   {s:="new" char(0); error}{错误}
源代码网推荐   p:=s;
源代码网推荐   {p:=@s[0] is also correct}
源代码网推荐   strpcopy(p,"new");
源代码网推荐   label1.caption:=strpas(p);{new}
源代码网推荐   label2.caption:=s;{new}
源代码网推荐   label3.caption:=s[0];{n}
源代码网推荐 end;
源代码网推荐
源代码网推荐
源代码网推荐   3、下标从0开始和从1开始的字符数组地址的表示方法也有细微不同:
源代码网推荐
源代码网推荐
源代码网推荐   例6:下标从1开始的数组a 与下标从0开始的数组b 的比较。
源代码网推荐
源代码网推荐   var
源代码网推荐 a:array[1..10]of char;
源代码网推荐 b:array[0..10]of char;
源代码网推荐   {a:="1..10";}{type mismatch}
源代码网推荐   {b:="0..10";}{type mismatch}
源代码网推荐 begin
源代码网推荐   strpcopy( b, "from 0 to 10"); {正确 因为b即是@b[0] }
源代码网推荐   strpcopy(@b[0], "from 0 to 10"); {正确 与上个表达式
源代码网推荐 果相同}
源代码网推荐   strpcopy(@a[1], "from 1 to 10"); {正确 }
源代码网推荐   strpcopy( a, "from 1 to 10"); {类型匹配错误 因为a即是a[0]}
源代码网推荐 end;


源代码网推荐

源代码网供稿.
网友评论 (0)
会员中心
网络编程
本站推荐
网络编程之精华