c:=charptr('a')是把'a'常量(即97)强制转换成了指针。而像'a'这样的常量是没有地址的,如果想得到地址,需要这样写:var
...
a:char; a:='a';
c:=charptr(@a);
.....
...
a:char; a:='a';
c:=charptr(@a);
.....
解决方案 »
- 求一个delphi 预览pdf文件的插件!
- 基于B/S的delphi系统
- edit的imeMode属性是不是有BUG的?
- 请教:我form2继承于form1,我怎样控制父窗体中控件的位置在子窗体中不能移动呢!
- 考研结束,再散分!!!
- 老板要到下月中下旬才回来,爽!散分。
- 在Delphi中如何创建一个私有类
- delphi中的类型转化
- 在XP中怎么关机?
- 问:哪儿有类似于资源管理器左边面板的VCL或OCX控件?高分相赠。
- 关于delphi中用ADO连接数据库的问题!!(欢迎up)在线等待!
- 急救。。语句错在哪?adoquery1.SQL.add('select ygdm,ygxm from user where ygdm='''+edit1.text+'''');
i : integer;
s: char;
begin
new(c);
c^:='a';
i:=integer(c);
showmessage(inttohex(i,10));
freemem(c);
end;/////////////////////////////////
而代码2type cp= ^char ;var c : cp;
i : integer;
s: char;
begin
s:='a';
c:= cp(s);
i:=integer(c);
//i:=integer(char(s));
showmessage(inttohex(i,10));
end;///////////////////////////////你会发觉
c:= cp(s);
i:=integer(c);与 i:=integer(char(s));
作用是一样的,
再将指针 c 转换在Integer输出,作用与Integer( Char( s ) )一样的
对delphi这点不满意,对于前一种情况,应该给出编译错误的。