关于指针的一个问题

2019-07-15 11:33发布

1、(unsigned long*)0x20000000;这个语句指的是什么意思?是把0x20000000定义成指针吗?
*0x20000000=2,表示的是将2放到0x20000000这个地址中?
2、(unsigned long*)0x20000000=2;这个赋值是错误的吧?
  *(unsigned long*)0x20000000=2 这样赋值是正确的吧?
3、define  P(unsigned long*)0x20000000 ;
     *P=2;

Define P *(unsigned long*)0x20000000;
      P=2;
这两者是等价的吧?

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
9条回答
Mr_RMS
1楼-- · 2019-07-16 09:46
 精彩回答 2  元偷偷看……
大熊现在很幸福
2楼-- · 2019-07-16 12:55
Mr_RMS 发表于 2017-3-30 19:22
我是把0x20000000类似于这样
int *p;
*p=2;

0x20000000只是一个立即数,而你说的int *p;这句代码中的p是个指针,这两个不是等价的,如果要等价就要按照之前提到过的进行强制类型转换,就比如转换为(int *)0x20000000,这样就和int  *p一样都是指针了。
可能会有点绕,自己多多体会就懂了
synopsys99
3楼-- · 2019-07-16 17:36
学习

一周热门 更多>