首页 新闻 会员 周边 捐助

为什么不同类型的指针赋值时要类型相同,系统不进行强转换

0
[待解决问题]

为什么不同类型的指针赋值时要类型相同,系统不进行强转换

float w=2.25;

如  int *p=&w(错误)

int *p =(int *)&w(正确)

李艳21的主页 李艳21 | 菜鸟二级 | 园豆:220
提问于:2014-08-15 21:38
< >
分享
所有回答(5)
0

指针不是也要定义类型的吗,应该和数据类型的用法一样吧

橘生淮南 | 园豆:198 (初学一级) | 2014-08-15 23:05
0

java还真不知道,如果是C的话,上面你那2ge应该都是可以编译通过的

吴瑞祥 | 园豆:29449 (高人七级) | 2014-08-16 08:27
0

1、语法就这样规定的。

2、之所以这样规定,是因为指针的使用具有风险,一旦用错会导致不可预料的后果,所以转换时要求程序员必须明示。

LiuKaiFa | 园豆:1491 (小虾三级) | 2014-08-16 08:34
0

系统采用这个方法,进行JAVA程序员的第一轮筛选。

如果你有看过黑客类的传奇,应该经常听到一个词语“溢出”。

C语言,C++经常干这种事,所以设计JAVA的那家伙,一拍脑袋,决定不走寻常路。

然后就象LiuKaiFa说的,这就成了乌龟的屁股。这是基因。

爱编程的大叔 | 园豆:30844 (高人七级) | 2014-08-16 10:02
0

语法这么定的。

因为这种转是有数据丢失的。

如果设成没有提示直接转,造成损失了谁来买单?

所以要由程序员告诉他,你可以这么转,出事了我扛着。

 

cclient | 园豆:264 (菜鸟二级) | 2014-08-20 18:30
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册