回覆列表
  • 1 # 小紅的甜心

    2.7.1 表示式中的型別轉換

    混合於同一表示式中的不同型別常量及變數,應均變換為同一型別的量。C語言的編譯程式將所有運算元變換為與最大型別運算元同類型。變換以一次一操作的方式進行。具體規則如下:

    1)所有char及shortint型量轉為int型,所有float轉換為double。

    2)如運算元對中一個為longdouble,另一個轉換為longdouble。①要不然,一個為double,另一個轉為double。②要不然,一個為long,另一個轉為long。③要不然,一個為unsigned,另一個轉為unsigned。

    一旦運用以上規則。每一對運算元均變為同類型。注意,規則2)有幾種必須依次應用的條件。

    圖2-1示出了型別轉換。首先,charch轉換成int,且floatf轉換成double;然後ch/i的結果轉換成double,因為f*d是double;最後由於這次兩個運算元都是double,所以結果也是double.

    2.7.2構成符cast

    可以透過稱為cast的構成符強迫一表達式變為特定型別。其一般形式為:

    (type)expression(type)是標準C語言中的一個數據型別。例如,為確保表示式x/2的結果具有型別float,可寫為:

    (float)x/2通常認為cast是運算子。作為運算子,cast是一元的,並且同其它一元運算子優先順序相同。雖然cast在程式中用得不多,但有時它的使用的確很有價值。例如,假設希望用一整數控制迴圈,但在執行計算時又要有小數部分。

    若沒有cast(float),就僅執行一次整數除;有了cast就可保證在螢幕上顯示答案的小數部分。

    2.7.3空格與括號

    為了增加可讀性,可以隨意在表示式中插入tab和空格符。例如,下面兩個表示式是相同的。

    x=10/y*(127/x);x=10/y*(127/x);

    冗餘的括號並不導致錯誤或減慢表達式的執行速度。我們鼓勵使用括號,它可使執行順序更清楚一些。例如,下面兩個表示式中哪個更易讀一些呢?

    x=y/2-34*temp&127;x=(y/2)-((34*temp)&127);

    2.7.4C語言中的簡寫形式

    C語言提供了某些賦值語句的簡寫形式。例如語句:

    x=x+10;

    在C語言中簡寫形式是:

    :x+=10;

    這組運算子對+=通知編譯程式將X+10的值賦予X。這一簡寫形式適於C語言的所有二元運算子(需兩個運算元的運算子)。在C語言中,

    variable=variable1operatorexpression;

    與variable1operator=expression相同。請看另一個例子:

    x=x-100;

    ;

    其等價語句是

    x-=100;

  • 中秋節和大豐收的關聯?
  • 汽車融資租賃系統如何才很好地支援業務發展?