为什么不同类型的指针赋值时要类型相同,系统不进行强转换
float w=2.25;
如 int *p=&w(错误)
int *p =(int *)&w(正确)
指针不是也要定义类型的吗,应该和数据类型的用法一样吧
java还真不知道,如果是C的话,上面你那2ge应该都是可以编译通过的
1、语法就这样规定的。
2、之所以这样规定,是因为指针的使用具有风险,一旦用错会导致不可预料的后果,所以转换时要求程序员必须明示。
系统采用这个方法,进行JAVA程序员的第一轮筛选。
如果你有看过黑客类的传奇,应该经常听到一个词语“溢出”。
C语言,C++经常干这种事,所以设计JAVA的那家伙,一拍脑袋,决定不走寻常路。
然后就象LiuKaiFa说的,这就成了乌龟的屁股。这是基因。
语法这么定的。
因为这种转是有数据丢失的。
如果设成没有提示直接转,造成损失了谁来买单?
所以要由程序员告诉他,你可以这么转,出事了我扛着。