procedure TForm1.Button7Click(Sender: TObject);
var
pc : PChar;
s:String;
begin
s:='test';
pc := @s;
pc := 'aaa';
ShowMessage(s);
end;为什么结果是"test",而不是"aaa"?
var
pc : PChar;
s:String;
begin
s:='test';
pc := @s;
pc := 'aaa';
ShowMessage(s);
end;为什么结果是"test",而不是"aaa"?
解决方案 »
- 怎样在dbgrid的第一列显示不同的图片
- 彩色图片转灰度图片的问题,找到的算法要么是针对BMP格式,要么是针对JPEG、JPG格式的,有没有支持多种图像格式的?
- 如何将2004-2-5 13:32:44字符串换一种类型20040205133244?
- 怎么把在一个表中查询的数据放到另一个表中?
- 高手帮帮忙!
- 多窗体程序,创建主窗体后,希望自动打开一个子窗体。发生错误。WHY
- #0 代表哪个按钮呀。DEL呢?
- 今天结贴,分数只给一个人!如何列出一个指定的文件夹下的所有子文件夹名。
- 怎么作像wps office 2002的文件切换功能,在MDI窗口中。
- select top 3 songname from test order by songname 有错吗?
- 程序设计接口问题
- 线程中使用TClientDataSet,出现的问题??
var
pc : PChar;//---PCHAR:^CHAR;你在这里只是定义了一个指针而已.
s:String;
begin
s:='test';
pc := @s;//---你这里是使指针指向了临时变量S的地址.
showmessage(integer(@pc));
pc := 'aaa';//---你这种赋值,是试图给指针赋一个值,这样的操作是不正确的,事实上,DELPHI是不会改变S的地址的.
pc^:='a';//--如果要改变S的值,可以这样.但上面的代码不能存在.此时S变成了'aest'
showmessage(integer(@pc));//---可以看看两次显示的值有什么区别,指针地址是不变的.....
ShowMessage(s);
end;呵~~,自己测试吧.