kuainiao

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

http://www.cnblogs.com/tdyizhen1314/archive/2012/04/03/2431147.html

举例:

(向0x2000100001处写入值0x12345678):

*(unsigned int *)0x20010000 = 0x12345678;

分析:

1、0x20010000是待写入的地址。

2、(unsigned int *)0x20010000是将0x20010000这个地址内存的数强制转换为unsigned int类型,当然也可以是unsigned char、signed short int类型等等,根据你实际需要而定。

3、0x12345678是待写入的值。

4、在地址的前面在加一个“*”,就可以将此值写入该地址了。“*”的作用相当于开锁的作用,将柜子打开,你可以往里面放书、也可以放被子、当然也可以放零食,关键看你怎么使用(一定要进行强制类型转换)。

注:以上仅是示例,不考虑大端模式与小端模式。

附加:

如何定义一个指针指定到一个具体的地址呢?

如定义一个unsigned int类型的指针指向具体地址0x20010000:

unsigned int *p = (unsigned int *)0x20010000; 这样就可以了。

上条语句相当于:

unsigned int *p;

p = (unsigned int *)0x20010000;

哈哈,很简单吧!

posted on 2012-12-24 14:02  kuainiao  阅读(1106)  评论(0编辑  收藏  举报
View Code