简单的指针问题,被绕晕了!

GoldWood 2008-10-21 10:32:29
再看一个老兄的程序,结果看到这个,

*(unsigned long *)&Buffer[readitems[i].addr]


到底代表什么意思啊!

我的理解是
(unsinged long) Buffer[readitems[i].addr]

有感觉好像不是,很困惑,谁给解释下,谢谢!

...全文
99 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
GoldWood 2008-10-21
  • 打赏
  • 举报
回复
好,谢谢了
homesos 2008-10-21
  • 打赏
  • 举报
回复
长度按 unsigned long 类型的长度取
GoldWood 2008-10-21
  • 打赏
  • 举报
回复
那么读到的是4个字节的数据好,还是1个字节的数据
wxq4100798 2008-10-21
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 dirdirdir3 的回复:]
*(unsigned long *)&Buffer[readitems[i].addr]
就是把buffer数组里面index为readitems[i].addr的那个地址转换为unsigned long来读........
相当于(unsinged long)(buffer+readitems[i].addr)
[/Quote]

正解
dirdirdir3 2008-10-21
  • 打赏
  • 举报
回复
*(unsigned long *)&Buffer[readitems[i].addr]
就是把buffer数组里面index为readitems[i].addr的那个地址转换为unsigned long来读........
相当于(unsinged long)(buffer+readitems[i].addr)
GoldWood 2008-10-21
  • 打赏
  • 举报
回复
char *Buffer
GoldWood 2008-10-21
  • 打赏
  • 举报
回复
好像应该是 Buffer[readitems[i].addr] 所代表地址的无符号长整型值
homesos 2008-10-21
  • 打赏
  • 举报
回复
自己写段测试代码试一下
king820802 2008-10-21
  • 打赏
  • 举报
回复
readitems[i].addr 是一个数,index
&Buffer[x] 是这个index的数组的地址
*(unsigned long *) 强制转换成unsigned long型指针,然后取8位
shenyi0106 2008-10-21
  • 打赏
  • 举报
回复
Buffer是什么类型的?
如果是unsigned long类型的话
Buffer[i] = *(unsigned long *)&Buffer[readitems[i].addr]
homesos 2008-10-21
  • 打赏
  • 举报
回复
把Buffer[number]中的内容,以unsigned long的格式取出

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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