自動類型轉換中的 = 號兩邊的變量的位置可以互換嗎?
像例子中的 char c=a; ? int x; ? double d; ? x=c; d=x;可以寫成c=x; ?x=d;嗎??
(以上因為懶,沒換行)感覺是大盒子放小盒子里了=?=!
是不是不可以用數學的=來理解????
如果位置不可換,可以理解為 char < int < double 嗎?
像例子中的 char c=a; ? int x; ? double d; ? x=c; d=x;可以寫成c=x; ?x=d;嗎??
(以上因為懶,沒換行)感覺是大盒子放小盒子里了=?=!
是不是不可以用數學的=來理解????
如果位置不可換,可以理解為 char < int < double 嗎?
2016-04-27
舉報
2016-04-27
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語言自動類型轉換的順序。