在下面的表达式中,发生了什么转换?
long long a;
long long b;
double c;
b=a*c;
假设 long long
类型是 8 字节。
如果a
和b
都是int
,那么在表达式b = a * c
中,a
会被转为double
与c
相乘,结果会被转为int
赋值给b
.
我的假设是否正确?
最佳答案
b=a*c;
相当于:
b=(long long) ( (double)a * c );
所以涉及到两个转换,第一个是从long long
到double
,第二个是从double
结果到long long
更多详情请查看this page from Joachim Pileborg's评论
关于c - 以下表达式中发生了什么转换?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31335601/