今天遇到一个奇怪的事,请看下面的代码:byte m = 0;
double n = 1;
m += n; //double型的变量值竟然赋给了byte型的变量结果程序顺利编译了;byte m = 0;
double n = 1;
m += n + 1;这个也可以;
再看下面:
byte m = 0;
double n = 1;
double k = 2;
m += n + k;还有:
byte m = 0;
double n = 1.0;//这回换个正宗的double值
double k = 2.0;
m += n + k;//还是可以编译连它也可以:
byte m = 127;
m++;有哪位高人指点一二.
double n = 1;
m += n; //double型的变量值竟然赋给了byte型的变量结果程序顺利编译了;byte m = 0;
double n = 1;
m += n + 1;这个也可以;
再看下面:
byte m = 0;
double n = 1;
double k = 2;
m += n + k;还有:
byte m = 0;
double n = 1.0;//这回换个正宗的double值
double k = 2.0;
m += n + k;//还是可以编译连它也可以:
byte m = 127;
m++;有哪位高人指点一二.
但是你不可以把一个大范围的数值赋值给一个小范围的数值没有通过CASTINGdouble d = 1.0;
byte b = d; (会产生错误)//byte b = (byte)d;byte b = 1;
double d = b (没有问题)
如果 m = m + n则报错,
其中T是E1类型, 除了E1只被计算过一次
我好想记得是这样