move()这个函数功能是什么?

caike 2003-11-26 09:04:44
我看了delphi的帮助,但还不理解其中意思。
像下面这个例子,其结果是怎么得来的?
var
A:array [1..4] of char;
B:integer;
begin
A:='ABCD';
move(A,B,sizeof(B));
showmessage('A='+A+#13#10'B='+IntToStr(B));
end;

结果显示:
A=ABCD
B=1145258561

请问其中B的结果是怎么得来的?
...全文
350 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
caike 2003-11-27
  • 打赏
  • 举报
回复
谢谢!
CloneCenter 2003-11-26
  • 打赏
  • 举报
回复
jacky_shen(jacky) 是对的。
Spacesoft 2003-11-26
  • 打赏
  • 举报
回复
同意jacky_shen(jacky)。

procedure Move(const Source; var Dest; Count: Integer);

move 就是把Count 字节的数据从变量Source 所指的位置拷贝倒Dest 所指的位置,这是在进行内存复制。类似于C 语言里面的memcpy
jacky_shen 2003-11-26
  • 打赏
  • 举报
回复
A => 41H
B => 42H
C => 43H
D => 44H

内存排布为
DCBA =>44 43 42 41

44434241H => 1145258561D

所以B的内容为 1145258561

---------------------------------------------------------------------------------
procedure Move(const Source; var Dest; Count: Integer);

Description

Move copies Count bytes from Source to Dest. No range checking is performed. Move compensates for overlaps between the source and destination blocks.

Whenever possible, use SizeOf to determine the count.
huazaijiajia 2003-11-26
  • 打赏
  • 举报
回复
你没有赋给 B 一个初值,所以就取一个随机数

16,748

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 语言基础/算法/系统设计
社区管理员
  • 语言基础/算法/系统设计社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧