unsigned int *p=(unsigned int *)0x00100
这条语句给p赋值为0x00100
换个说法就是强制令p指向内存地址为0x00100的位置
指针变量p本身也是一个32位的值,是可以把任何整数赋给它的,至于赋值后指针所指的位置是否可以读写,那才是需要程序员操心的问题的。
(unsigned int *)0x00100把0x00100转化成指针
因为unsigned int * 是指针类型
好比(int)3.1415 就是取整数部分,这里不是转化为变量吧,而是一个常量3
假如说
char c = 'C';
&c的地址为 0x00100
unsigned int *p=(unsigned int *)0x00100 这句话 可以看成是
unsigned int *p=(unsigned int *)&c;
就是把 c的地址 赋值到p里
这个就是就是强制令p指向内存地址为0x00100的位置
不是。。我感觉你这条语句有点类似分配空间给指针p,有点象把0x00100这个内存的地址给p