C语言 指针 强制类型转换
有这样一条语句 unsigned int *p=(unsigned int *)0x00100
(unsigned int *)0x00100把0x00100转化成了指针变量还是指针?
unsigned int * 不是用来把一个值强制转化为指针变量的吗 怎么能转化为指针?
谢谢各位了!
3回答
-
临摹微笑
(unsigned int *)0x00100把0x00100转化成指针因为unsigned int * 是指针类型好比(int)3.1415 就是取整数部分,这里不是转化为变量吧,而是一个常量3
-
拉风的咖菲猫
unsigned int *p=(unsigned int *)0x00100这条语句给p赋值为0x00100换个说法就是强制令p指向内存地址为0x00100的位置指针变量p本身也是一个32位的值,是可以把任何整数赋给它的,至于赋值后指针所指的位置是否可以读写,那才是需要程序员操心的问题的。
-
牛魔王的故事
假如说char c = 'C';&c的地址为 0x00100unsigned int *p=(unsigned int *)0x00100 这句话 可以看成是unsigned int *p=(unsigned int *)&c;就是把 c的地址 赋值到p里