在delphi中如何获取字符串的内存地址

 我来答
lgk5942013
2013-06-14 · TA获得超过242个赞
知道答主
回答量:103
采纳率:0%
帮助的人:134万
展开全部
虽然这个问题简单,但在回答前要说明一下,
delphi2010后的字符串是宽字符格式,关键字是W开头的,内存布局不同于关键字A开头的!
这只是内存排版问题!

VAR
    ss:string;        //定义字符串变量 
    SSpoint:Pointer; //定义字符串指针变量
begin
ss := '示例字符串';
SSpoint := pchar(ss);    //通过PCHAR函数获取字符串地址
ShowMessage(Format('%p=%s',[Pointer(sspoint),sspoint]));
//如果上面的showmessage不正确(可能版本不兼容),可以改为:
ShowMessage(Format('%p=%s',[Pointer(sspoint),StrPas(sspoint)]));
end;
如果针对这个问题的回答还有疑问,可以继续追问我!
如果在DELPHI方面有其他问题,可以点我的名字找找我以前的回答,或者对你有帮助!
如果我的热心回答帮助到你,记得采纳哦!祝你生活愉快!
补上一些参考资料给你:
http://www.cnblogs.com/Bung/category/299846.html
http://wenku.baidu.com/view/3dd18bec5ef7ba0d4a733b40.html
RedBaronVIP
推荐于2016-05-23 · TA获得超过1147个赞
知道小有建树答主
回答量:655
采纳率:0%
帮助的人:243万
展开全部
简单到家啊。无论是长字符串还是短字符串,首字符的地址(@s[1])就是字符串的内存地址。
var
s: string; {长字符串}
ss: ShortString; {短字符串}
begin
s := 'abcde';
ss := '12345';
ShowMessage(IntToStr(Integer(@s[1])));
ShowMessage(IntToStr(Integer(@ss[1])));
end;
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式