C语言 指针 强制类型转换

2024年11月29日 18:45
有5个网友回答
网友(1):

unsigned int *p=(unsigned int *)0x00100
这条语句给p赋值为0x00100
换个说法就是强制令p指向内存地址为0x00100的位置
指针变量p本身也是一个32位的值,是可以把任何整数赋给它的,至于赋值后指针所指的位置是否可以读写,那才是需要程序员操心的问题的。

网友(2):

(unsigned int *)0x00100把0x00100转化成指针
因为unsigned int * 是指针类型
好比(int)3.1415 就是取整数部分,这里不是转化为变量吧,而是一个常量3

网友(3):

假如说
char c = 'C';

&c的地址为 0x00100
unsigned int *p=(unsigned int *)0x00100 这句话 可以看成是

unsigned int *p=(unsigned int *)&c;
就是把 c的地址 赋值到p里

网友(4):

这个就是就是强制令p指向内存地址为0x00100的位置

网友(5):

不是。。我感觉你这条语句有点类似分配空间给指针p,有点象把0x00100这个内存的地址给p