2个回答
展开全部
目标类型是转换后的类型,源类型是转换前的类型
比如:
int a = 1;
double b = a; 这里是自动转换,因为double 有8个字节的长度 而int只有4个字节的长度,所以可以int可以自动转换成double ,就相当于int是一杯水,而double 是一个桶,一碗水当然可以倒入到桶里面,这里a是源类型 b是目标类型。
而:
double a = 1.0;
int b = (int) a; 这里是强制类型转换,因为不可能把一桶水塞进一个杯子里面,所以要强制类型转换。这里a是源类型 b是目标类型。
一些简单的例子:
float = 1.0; 编译错误,因为1.0是double类型的,所以要强制类型转换
short s = 1;
s = s + 1; 编译错误,因为short只有2个字节,而加上的1是int类型的4个字节,所以要强制类型转换
s = s++; 可以,自加1
比如:
int a = 1;
double b = a; 这里是自动转换,因为double 有8个字节的长度 而int只有4个字节的长度,所以可以int可以自动转换成double ,就相当于int是一杯水,而double 是一个桶,一碗水当然可以倒入到桶里面,这里a是源类型 b是目标类型。
而:
double a = 1.0;
int b = (int) a; 这里是强制类型转换,因为不可能把一桶水塞进一个杯子里面,所以要强制类型转换。这里a是源类型 b是目标类型。
一些简单的例子:
float = 1.0; 编译错误,因为1.0是double类型的,所以要强制类型转换
short s = 1;
s = s + 1; 编译错误,因为short只有2个字节,而加上的1是int类型的4个字节,所以要强制类型转换
s = s++; 可以,自加1
追问
你好,请问,这步有问题吧。就是您的 int b = (int) a这里,a已经是int型吧,应该是int a=(int)b吧。我刚学,请指教。跪了。
追答
你可以试一试 int c = a; 看看能不能成功??如果能,那拜服。这个涉及到存储内存。
展开全部
这位童鞋,请看下面的例子:
int a = 5;
double b = a;
int c = (int)b;
在上述代码中,第一步就是声明一个变量a,且将5赋给它;
第二步,定义一个double类型的变量b,且将a的值赋给它,此时完成了自动类型转化,a是源类型,b是目标类型。
第三步,定义了一个int类型变量c,且将b的值赋给它,此时完成了强制类型转化,b是源类型,c是目标类型。
可以这样总结,源类型在“=”的右边,而目标类型在“=”的左边。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询