问答详情
源自:2-8 自动类型转换

自动类型转换中的 = 号两边的变量的位置可以互换吗?

像例子中的 char c=a;   int x;   double d;   x=c; d=x;可以写成c=x;  x=d;吗??

(以上因为懒,没换行)感觉是大盒子放小盒子里了= =!

是不是不可以用数学的=来理解啊??

如果位置不可换,可以理解为 char < int < double 吗?

提问者:某年某月某日1 2016-04-27 01:41

个回答

  • qq_曦光__0
    2016-04-27 09:15:58
    已采纳

    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语言自动类型转换的顺序。