像例子中的 char c=a; int x; double d; x=c; d=x;可以写成c=x; x=d;吗??
(以上因为懒,没换行)感觉是大盒子放小盒子里了= =!
是不是不可以用数学的=来理解啊??
如果位置不可换,可以理解为 char < int < double 吗?
c语言中自动类型转换的顺序为:
当一个低精度的数据类型和一个高精度的数据类型运算时,运算结果为高精度类型。
char->int->unsigned->long->double
float->double
从低级到高级转换;
题中的赋值语句x=c; d=x;表示的含义是将c的值赋值给x,再将x的值赋值给d;(char->int->double)
而c=x;x=d;表示的是将x的值赋值给c,再将d的值赋值给x;(int->char;double->int)这个是错误的,不符合c语言自动类型转换的顺序。