搜索
bottom↓
回复: 9

int *p=(*)(0xff);

[复制链接]

出0入0汤圆

发表于 2012-2-1 13:25:08 | 显示全部楼层 |阅读模式
int *p=(*)(0xff);
怎么解释 说下原理谢谢

阿莫论坛20周年了!感谢大家的支持与爱护!!

知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)

出0入0汤圆

发表于 2012-2-1 13:31:10 | 显示全部楼层
int *p=NULL;
p = (*)(0xff);
同上,
把0xff强制转换为指针并赋给整形指针变量p。

出0入0汤圆

发表于 2012-2-1 13:39:39 | 显示全部楼层
int *p=(int *)0xff;

出0入0汤圆

 楼主| 发表于 2012-2-1 13:41:45 | 显示全部楼层
回复【1楼】haibin
int *p=null;
p = (*)(0xff);
同上,
把0xff强制转换为指针并赋给整形指针变量p。
-----------------------------------------------------------------------

这是指针变量的强制转换啊
如果*p=&i;
那么*(0xff)=&i;
即0xff=&i;

这样对吗?
把一个内存的地址强制转换为指针有啥用啊

出0入0汤圆

发表于 2012-2-1 15:05:43 | 显示全部楼层
回复【3楼】13465686375 keil
-----------------------------------------------------------------------

不对,*p=&i;代表的意思是,p变量存的是i的地址。
内存的地址强制转换为指针有啥用啊 ?
如果你想对内存的一个地址进行操作,不用指针怎么操作呢。
比如用单片机,你可以看见好多的寄存器,其实那都是编译环境给你集成好了。以avr的mega16为例
DDRB是个控制端口B方向的寄存器,为什么他就能控制,别的就不能呢
实际上DDRB只是一个符号,真正的定义是#define DDRB=*(volatile unsigned int *)0x04;

出0入0汤圆

 楼主| 发表于 2012-2-1 16:18:36 | 显示全部楼层
回复【4楼】ww880127
回复【3楼】13465686375 keil
-----------------------------------------------------------------------
不对,*p=&i;代表的意思是,p变量存的是i的地址。
内存的地址强制转换为指针有啥用啊 ?
如果你想对内存的一个地址进行操作,不用指针怎么操作呢。
比如用单片机,你可以看见好多的寄存器,其实那都是编译环境给你集成好了。以avr的mega16为例
ddrb是个控制端口b方向的寄存器,为什么他就能控制,别的就不能呢
实际上ddrb只是一个符号,真正的定义是#define ddrb=*(volatile unsigned int *)0x04;
-----------------------------------------------------------------------

噢 原来是这样 万分感谢

出0入0汤圆

发表于 2014-4-13 15:31:16 | 显示全部楼层
ww880127 发表于 2012-2-1 15:05
回复【3楼】13465686375 keil
-----------------------------------------------------------------------
...

*rr =  (int) (r * 0xff); 这个代码如何解释呢

出0入0汤圆

发表于 2014-4-13 15:32:49 | 显示全部楼层
*rr =  (int) (r * 0xff); 你好这个代码如何解释呢

出0入0汤圆

发表于 2014-4-13 15:49:40 | 显示全部楼层
本帖最后由 binaimei2007 于 2014-4-13 15:51 编辑
优享家 发表于 2014-4-13 15:32
*rr =  (int) (r * 0xff); 你好这个代码如何解释呢


意思是将 r*0xff 强制转化为int类型,然后放到rr指向的地址内

出0入0汤圆

发表于 2014-4-18 00:14:10 | 显示全部楼层
binaimei2007 发表于 2014-4-13 15:49
意思是将 r*0xff 强制转化为int类型,然后放到rr指向的地址内

那 r*0xff表示什么意思呢
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-7-23 22:56

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表