<em id="0a85b"><option id="0a85b"></option></em>

<abbr id="0a85b"></abbr>

      <nobr id="0a85b"></nobr>
        <tr id="0a85b"></tr>
        9久久伊人精品综合,亚洲一区精品视频在线,成 人免费va视频,国产一区二区三区黄网,99国产精品永久免费视频,亚洲毛片多多影院,精品久久久无码人妻中文字幕,无码国产欧美一区二区三区不卡
        學習啦 > 知識大全 > 知識百科 > 百科知識 > 表達式與語句的區別

        表達式與語句的區別

        時間: 肖陽1034 分享

        表達式與語句的區別

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

          一、表達式

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

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

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

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

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

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

          (int) a;

          (float) b;

          第一個式子是把a轉換成整型,如果原先有小數部分,則舍去。

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

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

          有時表達式也不參加運算,如:

          if(a||b) …………

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

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

          二、語句

          (一)、賦值語句

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

          Amount=1+2;

          Total=Counter/3+5;

          Area=Height*Width;

          也許你會發現,這些賦值語句很象代數方程,在某些情況下,我們的確可以這樣理解,但有時它們是不一樣的。看下面:

          Num=Num+1;

          這顯然不是一個等式。

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

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

          float Area,Height,Width;

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

          float Area,

          Height,

          Width;

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

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

          如:int a;

          a=3;

          等價于:

          int a=3;

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

          int a=3,b,c=5;

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

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

          (三)、標準輸入輸出語句

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

          1.標準輸入語句

          scanf()函數是格式化輸入函數, 它從標準輸入設備(鍵盤) 讀取輸入的信息。其調用格式為:

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

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

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

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

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

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

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

          符號 作用

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

          %d 十進制有符號整數

          %u 十進制無符號整數

          %f 浮點數

          %s 字符串

          %c 單個字符

          %p 指針的值

          %x,%X 無符號以十六進制表示的整數

          %o 無符號以八進制表示的整數

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

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

          例如:

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

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

          說明:

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

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

          char *p,str[20];

          scanf(%s, p);

          scanf(%s, str);

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

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

          如上例中若規定只能輸入10字符給字符串指針p,則第一條scanf()函數語句變為:

          scanf(%10s, p);

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

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

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

          char c1, c2;

          scanf(%c, &c1);

          scanf(%c, &c2);

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

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

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

          scanf(%3*d,&a);

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

          2.標準輸出語句

          printf()函數是格式化輸出函數,一般用于向標準輸出設備按規定格式輸出信息。在編寫程序時經常會用到此函數。printf()函數的調用格式為:

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

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

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

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

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

          符號 作用

          %e 指數形式的浮點數

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

          說明:

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

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

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

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

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

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

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

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

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

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

          例如: %ld 表示輸出long整數

          %lf 表示輸出double浮點數

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

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

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

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

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

          字符 作用

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

          \n 換行

          \f 清屏并換頁

          \r 回車

          \t Tab符

          \xhh 表示一個ASCII碼用16進表示
        猜你喜歡

        1.比較詩意的情感句子

        2.表達傷心比較有意義的句子

        3.想表達合作成功的語句

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

        5.表達看淡一切的句子

        6.表達奮斗的句子

        7.五種常見表達句子間關系的詞匯

        2938831 主站蜘蛛池模板: 亚洲人成色99999在线观看| 成全观看高清完整版免费动漫电影| 色呦呦在线视频| 四虎成人精品在永久在线| 男人狂桶女人高潮嗷嗷| 国产jizz中国jizz免费看| 久久成人国产精品免费软件| 欧美牲交a欧美牲交aⅴ免费真| 2020国产成人精品视频| av色蜜桃一区二区三区| 国产天美传媒性色av高清| 99精品国产一区在线看| 99国精品午夜福利视频不卡99 | 猛男被狂c躁到高潮失禁男男小说| 国产女人高潮毛片| 内地偷拍一区二区三区| av无码一区二区大桥久未| 国产精品99一区二区三区| 免费无码又爽又刺激高潮虎虎视频| 给我免费观看片在线| 天天爽夜夜爱| 国产成人国产在线观看| 亚洲制服丝袜系列AV无码| 武装少女在线观看高清完整版免费 | 日本一区二区三区激情视频 | 春菜花亚洲一区二区三区| 国产福利萌白酱在线观看视频| 亚洲免费福利在线视频| 人妻少妇久久久久久97人妻| 伊人色婷婷| 午夜无码区在线观看亚洲| 内射干少妇亚洲69XXX| 少妇撒尿一区二区在线视频| 玩弄丰满少妇人妻视频| 久久69国产精品久久69软件| 日韩在线视频线观看一区| 精产国品一二三区别9999| 久久青青草原精品国产app| 日本aaaaa片特黄aaaa| 国产精品久久国产丁香花| 在线观看中文字幕国产码|