请教指针问题(100)

  • 主题发起人 主题发起人 www.0o0.com
  • 开始时间 开始时间
W

www.0o0.com

Unregistered / Unconfirmed
GUEST, unregistred user!
var rbuf,sbuf: array[1..6] of byte;。。。。 move(buffer^,rbuf,bufferlength); Move(buffer^, (Pchar(@rbuf))^,bufferLength) Move(buffer^, Pchar(@rbuf),bufferLength)中的 rbuf,(Pchar(@rbuf))^,Pchar(@rbuf)分别怎么理解,详细点~严重感谢!
 
(Pchar(@rbuf))^ : 将rbuf的地址先转为字符串(PCHAR 指向字符串的指针),再将这个字符串的内容取出
 
懂了就是懂了,不懂就是不懂,怎么说也没用,自己思考
 
rbuf: array[1..6] of byte;rbuf :rbuf是数组类型,所以rbuf就是直接指一块内存了;(Pchar(@rbuf))^:先@rbuf取rbuf的地址,再转成pchar指值,加上^还是指指针指向的内存块,所以这里的意思是把rbuf这块内存里的内容看成是char数组。用move方法的话, move(buffer^,rbuf,bufferlength); Move(buffer^, (Pchar(@rbuf))^,bufferLength)这两句的效果是一样的,都对,但第二句有点多此一举;Pchar(@rbuf):@rbuf取地址,并把这地址看成(强制转换)pchar指针;不知道讲明白了没有,有点抽象
 
多人接受答案了。
 
后退
顶部