亚洲欧美精品沙发,日韩在线精品视频,亚洲Av每日更新在线观看,亚洲国产另类一区在线5

<pre id="hdphd"></pre>

  • <div id="hdphd"><small id="hdphd"></small></div>
      學(xué)習(xí)啦 > 知識大全 > 知識百科 > 百科知識 > 表達(dá)式與語句的區(qū)別

      表達(dá)式與語句的區(qū)別

      時間: 肖陽1034 分享

      表達(dá)式與語句的區(qū)別

        表達(dá)式它是由常量、變量、運算符組合,計算以后返回一個結(jié)果值。表達(dá)式的結(jié)束標(biāo)志是分號(;),C語言中所有的語句和聲明都是用分號結(jié)束,在分號出現(xiàn)之前,語句是不完整的。語句與表達(dá)式這兩者有何區(qū)別呢?下面就跟著學(xué)習(xí)啦小編一起來看看吧。

        一、表達(dá)式

      表達(dá)式本身什么事情都不做,只是返回結(jié)果值。在程序不對返回的結(jié)果值做任何操作的情況下,返回的結(jié)果值不起任何作用,表達(dá)式的作用有兩點,一個是放在賦值語句的右邊,另一個是作為函數(shù)的參數(shù)(以后再介紹)。

        表達(dá)式返回的結(jié)果值是有類型的。表達(dá)式隱含的數(shù)據(jù)類型取決于組成表達(dá)式的變量和常量的類型。因此,表達(dá)式的返回值有可能是某種大小的整型,或者是某精度的浮點型,或者是某種指針類型。

        這里面就有類型轉(zhuǎn)化的問題了,在前面說整型運算的時候也提到過。類型轉(zhuǎn)化的原則是從低級向高級自動轉(zhuǎn)化(除非人為的加以控制)。計算的轉(zhuǎn)換順序基本是這樣的:

        字符型-->整型-->長整型-->浮點型-->單精度型-->雙精度型

        就是當(dāng)字符型和整型在一起運算時,結(jié)果為整型,如果整型和浮點型在一起運算,所得的結(jié)果就是浮點型,如果有雙精度型參與運算,那么答案就是雙精度型了。

        強制轉(zhuǎn)換是這樣的,在類型說明符的兩邊加上括號,就把后面的變量轉(zhuǎn)換成所要的類型了。如:

        (int) a;

        (float) b;

        第一個式子是把a轉(zhuǎn)換成整型,如果原先有小數(shù)部分,則舍去。

        第二個式子是把b轉(zhuǎn)換成浮點型,如果原先是整數(shù),則在后面補0。

        每一個表達(dá)式的返回值都具有邏輯特性。如果返回值為非0,則該表達(dá)式返回值為真,否則為假。這種邏輯特性可以用在程序流程控制語句中。

        有時表達(dá)式也不參加運算,如:

        if(a||b) …………

        5>3?a++:b++;

        當(dāng)a為真時,b就不參加運算了,因為不管b如何,條件總是真。

        二、語句

        (一)、賦值語句

        其實這個問題,在講賦值運算符的時候已經(jīng)講了一些了。

        Amount=1+2;

        Total=Counter/3+5;

        Area=Height*Width;

        也許你會發(fā)現(xiàn),這些賦值語句很象代數(shù)方程,在某些情況下,我們的確可以這樣理解,但有時它們是不一樣的??聪旅妫?/p>

        Num=Num+1;

        這顯然不是一個等式。

        (二)、用逗號分隔開的聲明語句

        C語言可大多數(shù)語言一樣,允許用逗號分隔聲明語句中的標(biāo)識符列表,說明這些運算符是同一變量類型。例如:

        float Area,Height,Width;

        但有些程序員喜歡把標(biāo)識符寫在不同的行上。如:

        float Area,

        Height,

        Width;

        這樣寫至少有一個好處,就是可以在每個標(biāo)識符后邊加上注釋。

        在聲明變量的時候,也可以直接給變量賦值,這叫做變量的初始化。

        如:int a;

        a=3;

        等價于:

        int a=3;

        我們也讓某些變量初始化,某些不初始化,如:

        int a=3,b,c=5;

        在進(jìn)行初始化時,初始化表達(dá)式可以是任意的(對全局變量和靜態(tài)變量有區(qū)別),由于逗號運算符是從左到右運算的,那么看看這樣行不行?

        int a=3,b=a,c=5;

        (三)、標(biāo)準(zhǔn)輸入輸出語句

        Turbo C 2.0標(biāo)準(zhǔn)庫提供了兩個控制臺格式化輸入、輸出函數(shù)scanf();和printf();這兩個函數(shù)可以在標(biāo)準(zhǔn)輸入輸出設(shè)備上以各種不同的格式讀寫數(shù)據(jù)。scanf() 函數(shù)用來從標(biāo)準(zhǔn)輸入設(shè)備(鍵盤)上讀數(shù)據(jù),printf()函數(shù)用來向標(biāo)準(zhǔn)輸出設(shè)備(屏幕)寫數(shù)據(jù)。下面詳細(xì)介紹這兩個函數(shù)的用法。

        1.標(biāo)準(zhǔn)輸入語句

        scanf()函數(shù)是格式化輸入函數(shù), 它從標(biāo)準(zhǔn)輸入設(shè)備(鍵盤) 讀取輸入的信息。其調(diào)用格式為:

        scanf(<格式化字符串>, <地址表>);

        格式化字符串包括以下三類不同的字符;

        (1).空白字符:空白字符會使scanf()函數(shù)在讀操作中略去輸入中的一個或多個空白字符。

        (2).非空白字符:一個非空白字符會使scanf()函數(shù)在讀入時剔除掉與這個非空白字符相同的字符。

        (3).格式化說明符:以%開始,后跟一個或幾個規(guī)定字符,用來確定輸出內(nèi)容格式。

        Turbo C 2.0提供的輸入格式化規(guī)定符如下:

        ━━━━━━━━━━━━━━━━━━━━━━━━━━

        符號 作用

        ──────────────────────────

        %d 十進(jìn)制有符號整數(shù)

        %u 十進(jìn)制無符號整數(shù)

        %f 浮點數(shù)

        %s 字符串

        %c 單個字符

        %p 指針的值

        %x,%X 無符號以十六進(jìn)制表示的整數(shù)

        %o 無符號以八進(jìn)制表示的整數(shù)

        ━━━━━━━━━━━━━━━━━━━━━━━━━━

        地址表是需要讀入的所有變量的地址,而不是變量本身,取地址符為'&'。各個變量的地址之間同,分開。

        例如:

        scanf(%d,%d,&i,&j);

        上例中的scanf()函數(shù)先讀一個整型數(shù),然后把接著輸入的逗號剔除掉,最后讀入另一個整型數(shù)。如果,這一特定字符沒有找到,scanf()函數(shù)就終止。若參數(shù)之間的分隔符為空格,則參數(shù)之間必須輸入一個或多個空格。

        說明:

        (a).對于各個變量,類型說明符是什么,輸入格式化說明符就應(yīng)該用對應(yīng)的類型。否則會出現(xiàn)程序錯誤或輸入數(shù)據(jù)和理想的不一樣。

        (b).對于字符串?dāng)?shù)組或字符串指針變量,由于數(shù)組名和指針變量名本身就是地址,因此使用scanf()函數(shù)時,不需要在它們前面加上&操作符。

        char *p,str[20];

        scanf(%s, p);

        scanf(%s, str);

        具體字符串,指針的知識以后再介紹。

        (c).可以在格式化字符串中的%各格式化規(guī)定符之間加入一個整數(shù),表示任何讀操作中的最大位數(shù)。

        如上例中若規(guī)定只能輸入10字符給字符串指針p,則第一條scanf()函數(shù)語句變?yōu)?

        scanf(%10s, p);

        程序運行時一旦輸入字符個數(shù)大于10, p就不再繼續(xù)讀入。

        實際使用scanf()函數(shù)時存在一個問題, 下面舉例進(jìn)行說明:

        當(dāng)使用多個scanf()函數(shù)連續(xù)給多個字符變量輸入時, 例如:

        char c1, c2;

        scanf(%c, &c1);

        scanf(%c, &c2);

        運行該程序,輸入一個字符A后回車(要完成輸入必須回車),在執(zhí)行scanf(%c,&c1)時,給變量c1賦值A(chǔ),但回車符仍然留在緩沖區(qū)內(nèi),執(zhí)行輸入語句scanf(%c,&c2)時,變量c2輸出的是一空行,如果輸入AB后回車,那么實際存入變量里的結(jié)果為c1為A,c2為B。

        要解決以上問題, 可以在輸入函數(shù)前加入清除函數(shù)fflush();(這個函數(shù)的使用方法將在本節(jié)最后講述)。

        (d).當(dāng)在格式說明符之間加入'*'時,表示跳過輸入,例如:

        scanf(%3*d,&a);

        當(dāng)輸入12345的時候,前面三個字符跳過去不考慮,最終變量a的值為45。

        2.標(biāo)準(zhǔn)輸出語句

        printf()函數(shù)是格式化輸出函數(shù),一般用于向標(biāo)準(zhǔn)輸出設(shè)備按規(guī)定格式輸出信息。在編寫程序時經(jīng)常會用到此函數(shù)。printf()函數(shù)的調(diào)用格式為:

        printf(<格式化字符串>, <參量表>);

        其中格式化字符串包括兩部分內(nèi)容:一部分是正常字符,

        這些字符將按原樣輸出;另一部分是格式化規(guī)定字符,以%開始,后跟一個或幾個規(guī)定字符,用來確定輸出內(nèi)容格式。

        參量表是需要輸出的一系列參數(shù),其個數(shù)必須與格式化字符串所說明的輸出參數(shù)個數(shù)一樣多,各參數(shù)之間用,分開,且順序一一對應(yīng),否則將會出現(xiàn)意想不到的錯誤。

        對于輸出語句,還有兩個格式化說明符

        符號 作用

        %e 指數(shù)形式的浮點數(shù)

        %g 自動選擇合適的表示法

        說明:

        (1).可以在%和字母之間插進(jìn)數(shù)字表示最大場寬。

        例如: %3d 表示輸出3位整型數(shù),不夠3位右對齊。

        %9.2f 表示輸出場寬為9的浮點數(shù),其中小數(shù)位為2,整數(shù)位為6,小數(shù)點占一位,不夠9位右對齊。

        %8s 表示輸出8個字符的字符串,不夠8個字符右對齊。

        如果字符串的長度、或整型數(shù)位數(shù)超過說明的場寬,將按其實際長度輸出。但對浮點數(shù),若整數(shù)部分位數(shù)超過了說明的整數(shù)位寬度,將按實際整數(shù)位輸出;若小數(shù)部分位數(shù)超過了說明的小數(shù)位寬度,則按說明的寬度以四舍五入輸出。

        另外,若想在輸出值前加一些0, 就應(yīng)在場寬項前加個0。

        例如: %04d 表示在輸出一個小于4位的數(shù)值時,將在前面補0使其總寬度為4位。

        如果用浮點數(shù)表示字符或整型量的輸出格式,小數(shù)點后的數(shù)字代表最大寬度,小數(shù)點前的數(shù)字代表最小寬度。

        例如: %6.9s 表示顯示一個長度不小于6且不大于9的字符串。若大于9,則第9個字符以后的內(nèi)容將被刪除。

        (2). 可以在%和字母之間加小寫字母l,表示輸出的是長型數(shù)。

        例如: %ld 表示輸出long整數(shù)

        %lf 表示輸出double浮點數(shù)

        (3). 可以控制輸出左對齊或右對齊,即在%和字母之間加入一個- 號可說明輸出為左對齊,否則為右對齊。

        例如: %-7d 表示輸出7位整數(shù)左對齊

        %-10s 表示輸出10個字符左對齊

        一些特殊規(guī)定字符(可以參照前面說的轉(zhuǎn)義字符)

        ━━━━━━━━━━━━━━━━━━━━━━━━━━

        字符 作用

        ──────────────────────────

        \n 換行

        \f 清屏并換頁

        \r 回車

        \t Tab符

        \xhh 表示一個ASCII碼用16進(jìn)表示
      猜你喜歡

      1.比較詩意的情感句子

      2.表達(dá)傷心比較有意義的句子

      3.想表達(dá)合作成功的語句

      4.c語言中邏輯或的用法

      5.表達(dá)看淡一切的句子

      6.表達(dá)奮斗的句子

      7.五種常見表達(dá)句子間關(guān)系的詞匯

      2938831