为了账号安全,请及时绑定邮箱和手机立即绑定

C语言 指针 强制类型转换

C语言 指针 强制类型转换

C
阿波罗的战车 2019-04-09 05:04:51
有这样一条语句 unsigned int *p=(unsigned int *)0x00100(unsigned int *)0x00100把0x00100转化成了指针变量还是指针? unsigned int * 不是用来把一个值强制转化为指针变量的吗 怎么能转化为指针?谢谢各位了!
查看完整描述

3 回答

?
临摹微笑

TA贡献1982条经验 获得超2个赞

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

查看完整回答
反对 回复 2019-04-10
?
拉风的咖菲猫

TA贡献1995条经验 获得超2个赞

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

查看完整回答
反对 回复 2019-04-10
?
牛魔王的故事

TA贡献1830条经验 获得超3个赞

假如说
char c = 'C';

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

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

查看完整回答
反对 回复 2019-04-10
  • 3 回答
  • 0 关注
  • 1212 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信