• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
  • C語言表達式

    發表于:2007-07-14來源:作者:點擊數: 標簽:
    C語言表達式: 表達式由運算符、常量及變量構成。C語言的表達式基本遵循一般代數規則,有幾點卻是與C語言緊密相關的,以下將分別加以討論。 2.7.1 表達式中的類型轉換 混合于同一表達式中的不同類型常量及變量,應均變換為同一類型的量。C語言的編譯程序將所
    C語言表達式:


    表達式由運算符、常量及變量構成。C語言的表達式基本遵循一般代數規則,有幾點卻是與C語言緊密相關的,以下將分別加以討論。
    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;
    簡寫形式廣泛應用于專業C語言程序中,希望讀者能熟悉它。

    原文轉自:http://www.kjueaiud.com

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>