猿问

C语言 指针 强制类型转换

有这样一条语句 unsigned int *p=(unsigned int *)0x00100
(unsigned int *)0x00100把0x00100转化成了指针变量还是指针? 
unsigned int * 不是用来把一个值强制转化为指针变量的吗 怎么能转化为指针?
谢谢各位了!
阿波罗的战车
浏览 1213回答 3
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里
随时随地看视频慕课网APP
我要回答