[应用相关] 这句的强制转换

[复制链接]
673|15
 楼主| xia00 发表于 2017-11-24 21:11 | 显示全部楼层 |阅读模式
往内存某地址比如0X12FF7C写数据0X100

int*p = (int*)0x12ff7c;
*p=0x100;

如果写成
int*p;
p=0x12ff7c;
*p=0x100;

即p= (int*)0x12ff7c;这句的强制转换不强制转换了会有什么结果呢?
hfdy01 发表于 2017-11-24 21:15 | 显示全部楼层
避免警告或错误,取决于具体的编译器
CallReceiver 发表于 2017-11-24 21:17 | 显示全部楼层
这个是取决于编译器的,一般情况下编译器都默认为int型
boy1990 发表于 2017-11-24 21:19 | 显示全部楼层
你不转换也没关系,编译器会帮你强制转换。
sourceInsight 发表于 2017-11-24 21:20 | 显示全部楼层

最好进行强制转换,是个好习惯。
feiqi1 发表于 2017-11-24 21:23 | 显示全部楼层

强制转换是为了明确的通知编译器, 以免编译器迷糊。
androidbus 发表于 2017-11-24 21:25 | 显示全部楼层
用强制转换明确的通知编译器:这不是一个笔误!!!!
litengg 发表于 2017-11-24 21:28 | 显示全部楼层


int*p;
p=0x12ff7c;
*p=0x100;
我认为p=0x12ff7c;这一句编译都通不过啊,在语法上就是错误的
qiangweii 发表于 2017-11-24 21:29 | 显示全部楼层
将int类型的数据赋值给指针类型的数据,在语法上是错误的
xiaoyaodz 发表于 2017-11-24 21:32 | 显示全部楼层
没有什么问题的
shashaa 发表于 2017-11-24 21:32 | 显示全部楼层
优点   第一  告诉编译器你想要的数据类型   
febgxu 发表于 2017-11-24 21:32 | 显示全部楼层
程序能够正常执行的。
bbapple 发表于 2017-11-24 21:33 | 显示全部楼层
节省时间   提高程序执行速率
xiaoyaodz 发表于 2017-11-24 21:34 | 显示全部楼层
定义的地址都是一样的。
febgxu 发表于 2017-11-24 21:34 | 显示全部楼层
这个就是强制转换的类型而已
Mattheww 发表于 2017-11-28 11:31 | 显示全部楼层
编译器会帮你强制转换
您需要登录后才可以回帖 登录 | 注册

本版积分规则

179

主题

1867

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部