C语言指针问题

skevil 2013-10-23 02:58:07
(*((volatile unsigned long*)0x40011400))

什么意思呢?我把自己绕晕了。。。。。
...全文
154 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
艾薇儿More 2013-10-24
  • 打赏
  • 举报
回复
赵4老师 2013-10-24
  • 打赏
  • 举报
回复
引用 9 楼 Luisfan 的回复:
[quote=引用 2 楼 zhao4zhong1 的回复:] 取出内存地址0x40011400开始的4个字节对应的unsigned long值。
正[/quote]
Luisfan 2013-10-24
  • 打赏
  • 举报
回复
引用 2 楼 zhao4zhong1 的回复:
取出内存地址0x40011400开始的4个字节对应的unsigned long值。
skevil 2013-10-24
  • 打赏
  • 举报
回复
感谢各位啦
水平不流 2013-10-23
  • 打赏
  • 举报
回复
看起来应该是强制转换,再读取指针内容。
AnYidan 2013-10-23
  • 打赏
  • 举报
回复
强制转换,再解指针
booirror 2013-10-23
  • 打赏
  • 举报
回复
1.将地址0x40011400强制转成volatile unsigned long*类型 2.对它进行解引用,就得到unsigned long类型的内容。 然后你可以把结果赋给unsigned long类型的变量了。
军说网事 2013-10-23
  • 打赏
  • 举报
回复
(*((volatile unsigned long*)0x40011400)) 用1个unsigned long*指针指向地址0x40011400里的内容,volatile表示每次都会重新进行读取,可能这块内存的数据会变化。
zhao 2013-10-23
  • 打赏
  • 举报
回复
引用 3 楼 z1179675084 的回复:
把0x40011400转化为(unsigned long *)的,前面那个*表示对其取值,就是从0x40011400开始连续读取8个字节的数据。至于volatile表示这个内存空间中的值可能会发生变化,每次取的时候都要重新读取这篇内存!
上面有点问题是读取4个字节
zhao 2013-10-23
  • 打赏
  • 举报
回复
把0x40011400转化为(unsigned long *)的,前面那个*表示对其取值,就是从0x40011400开始连续读取8个字节的数据。至于volatile表示这个内存空间中的值可能会发生变化,每次取的时候都要重新读取这篇内存!
赵4老师 2013-10-23
  • 打赏
  • 举报
回复
取出内存地址0x40011400开始的4个字节对应的unsigned long值。
做或不做 2013-10-23
  • 打赏
  • 举报
回复
百度啊 有多是答案的 http://blog.sina.com.cn/s/blog_65861d3f0100xsz0.html

69,382

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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