999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

C語言中的表達式與表達式的值

2008-12-31 00:00:00劉玉利
電腦知識與技術(shù) 2008年23期

摘要:結(jié)合最小表達式的概念詳細論述了表達式的值的求解方法,并通過幾個典型實例剖析了C語言表達式的值的具體應用及分析方法。

關鍵詞:C語言;運算符;表達式

中圖分類號:TP312文獻標識碼:A文章編號:1009-3044(2008)23-965-01

Expression and Its Value of C Language

LIU Yu-li

(Electron Department,Engineering College,Linyi Normal University,Linyi 276000,China)

Abstract: This paper discussed detailedly the way of evaluation of expression with the concept of minimum expression,and analysed the concrete application and analytic method of evaluation of expression.

Key words: C language; operator; expression

1 引言

C語言是基于結(jié)構(gòu)化程序設計思想的程序設計語言,結(jié)構(gòu)化的程序由函數(shù)組成,而函數(shù)是由語句組成的。C語言中語句的標志是分號,對于一個語句而言,去掉分號后,它只是一個式子,這個式子就是表達式。

2 表達式

表達式是構(gòu)成語句的基本單位,C語言中的表達式是由運算符串聯(lián)起來的式子,所串聯(lián)的對象可以是常量、變量或函數(shù)調(diào)用。表達式的劃分是由運算符來決定的,由算術(shù)運算符串聯(lián)起來的式子稱為算術(shù)表達式;由關系運算符串聯(lián)起來的式子稱為關系表達式等。很多情況下需要討論有且只有一個運算符的表達式,因此把這種有且只有一個運算符所構(gòu)成的表達式稱為最小表達式,如a+b或!a等就是最小表達式。任何復雜的的表達式都是由最小表達式構(gòu)成的,如:a+b>c+d,這是一個關系表達式,而關系運算符的兩邊又是有算術(shù)表達式a+b和c+d組成,這兩個算術(shù)表達式都是最小表達式。最小表達式是求值的基本單位,因此在最小表達式兩邊加上括號而不影響整個表達式的值,如a+b>c+d和(a+b)>(c+d)的結(jié)果是一樣的。

對于一個復雜的表達式而言,劃分最小表達式的依據(jù)是各種運算符的優(yōu)先級和結(jié)合性,首先以表達式中優(yōu)先級最高的運算符為核心劃分出一級最小表達式,然后加上小括號運算符,小括號里面的最小表達式使用它的值進行替換,因此形成一個新的表達式,然后這個新的表達式的基礎上尋找二級最小表達式,直到將原表達式分成只有一個運算符的表達式為止,根據(jù)最后的這個運算符就能確定原表達式的類型,因此就能確定原表達式的值及其類型。

3 表達式的值

表達式的值是表達式運算后的結(jié)果,任何一個表達式都會有一個值及其類型,這個值是一個常量,也就是說任何一個最小表達式的值都是一個某種類型的常量,算術(shù)表達式的的值是整形或浮點型的常量,關系表達式或邏輯表達式的值是邏輯量0或1。如1+2是一個算術(shù)表達式,它的結(jié)果3是一個整形常量,而1+2+5這個算術(shù)表達式可以通過尋找最小表達式的的方式將其改成(1+2)+5,在運算(1+2)+5這個表達式時,小括號部分是一個最小表達式,需要使用該最小表達式的值(常量)和5進行運算,即3+5,對于這個新的表達式而言,它只有一個運算符,是一個最小表達式,我們可以根據(jù)這個最小表達式確定原表達式是一個算術(shù)表達式,它最終的結(jié)果就是一個整數(shù)常量(8)。

在分析一個表達式的時候需要將一個復雜的表達式分解成若干個最小表達式,結(jié)合表達式的值這一概念,分析表達式最終的值時可以利用表達式的值一步一步完成原表達式的求值過程。例如求10+'a'+i*f的結(jié)果,我們從最小表達式的角度分析整個表達式的運算過程。

先尋找一級表達式,*優(yōu)先級最高,則可將原表達式改成10+'a'+(3*2.0),根據(jù)類型轉(zhuǎn)換相關的知識可知,運算3*2.0時,由于2.0是double型常量,需要將3轉(zhuǎn)換成double型的常量3.0(不再顯示小數(shù)點后其它多余的0,下同),運算的結(jié)果是double型的常量6.0,因此原表達式可以轉(zhuǎn)變成10+'a'+6.0,而表達式'a'的值在做算術(shù)運算時用它的ASCII碼97,因此可以寫成10+97+6.0,這個表達式的運算符都是算術(shù)運算符,而算術(shù)運算符的結(jié)合性是自左向右的,因此它等于(10+97)+6.0,也就是107+6.0,這時原表達式就變成一個最小表達式,由于6.0是double型的常量,同樣需要將107轉(zhuǎn)換成double型的107.0,然后再和6.0運算,所得到的結(jié)果是113.0,類型是一個double型的常量。

這種分析過程和C語言編譯器求解過程可能不同,但最終結(jié)果都是一樣的,而這種分析方法可以使初學者更容易的接受復雜表達式的求解過程。

當單個的常量、變量出現(xiàn)在賦值符號的右邊是可以看作是表達式的特例,如int a,i=3;a=i;其中3是一個常量表達式,而在a=i這個表達式中i可以看成一個最小表達式的特例,賦值過程是將表達式i的值(整形常量3)賦給變量a。

“=”本身也是一個運算符,它所串聯(lián)的式子是一個賦值表達式,該表達式的值采用賦值運算符右邊的表達式的值,如a=3是一個賦值表達式,該表達式的值是采用右邊常量表達式3的值,作為該表達式的值,因此不難理解b=a=3的賦值過程。由于賦值運算符是右結(jié)合的因此可以將原表達式通過最小表達式的方式求解,即b=(a=3),小括號中是一個最小賦值表達式,該表達式的值是3,即原表達式變成b=(3)。

函數(shù)調(diào)用也是一種最小表達式,在運算時用函數(shù)的返回值作為該表達式的值,如如i=Max(a,b),該賦值運算符在運算時是將Max(a,b)的返回值(某種類型的常量)賦給i。

4 特例

自增(自減)表達式是一個特例。++a本身是一個最小表達式,該表達式的值采用變量a中的值,而不是用最小表達式的值,如(++a)*(++a),假設a=1,如果用最小表達式的概念來分析,前一個小括號中是一個最小自增表達式,該表達式的值是2,后一個小括號也是一個最小自增表達式,該表達式的值是3,理論上分析最終的結(jié)果應該是2*3=6,而在TC2.0和VC6.0下顯示的結(jié)果是9,也就是說原表達式所使用的是變量a中的值,經(jīng)過兩次自增后a中的值是3,因此結(jié)果是3*3=9。

5 結(jié)束語

C語言中的表達式與表達式的值這兩個概念非常重要,對于初學者而言,如何求解復雜表達式的值是他們的難點,從教學過程中發(fā)現(xiàn)一旦他們真正理解了最小表達式的概念后,這個問題就迎刃而解了。

參考文獻:

[1] 譚浩強.C程序設計[M].3版.北京:清華大學出版社,2005.

[2] 何欽銘,顏暉.C語言程序設計[M].杭州:浙江科技出版社,2004.

[3] 黃維通,馬力妮.C語言程序設計[M].北京:清華大學出版社,2003.

主站蜘蛛池模板: 特级毛片免费视频| 日韩欧美综合在线制服| 91网站国产| 亚洲综合九九| 丁香婷婷激情网| 91亚洲精选| 国产91高清视频| 亚洲第一极品精品无码| 亚洲欧美日韩中文字幕在线一区| yjizz视频最新网站在线| 国产靠逼视频| 国产日韩欧美精品区性色| 伊人色在线视频| 在线看片国产| 国产理论精品| 欧美激情网址| 欧美一区福利| 亚洲六月丁香六月婷婷蜜芽| 欧美区一区二区三| 四虎精品国产AV二区| 中文字幕免费播放| 精品亚洲麻豆1区2区3区| 萌白酱国产一区二区| 伊人久久综在合线亚洲2019| 欧美色亚洲| 精品国产美女福到在线不卡f| 欧美视频在线第一页| 日韩AV无码免费一二三区| 欧美日韩国产成人高清视频| av午夜福利一片免费看| 黄色网址手机国内免费在线观看| 国产精品美人久久久久久AV| 久久久受www免费人成| 2020精品极品国产色在线观看| 国产尹人香蕉综合在线电影| 国产欧美自拍视频| 国产第八页| 国产一区二区三区在线无码| 国产成人一区免费观看| 亚洲精品国产综合99久久夜夜嗨| 国产成人啪视频一区二区三区 | 毛片网站在线看| 综合亚洲色图| 国产一级毛片高清完整视频版| 亚洲欧美色中文字幕| 婷婷午夜天| 国产综合另类小说色区色噜噜| 亚洲妓女综合网995久久| 亚洲无码高清视频在线观看| 熟女日韩精品2区| 97久久精品人人做人人爽| 激情综合网激情综合| 成人免费午间影院在线观看| 91精品小视频| 精品国产www| 欧美v在线| 亚洲无码精品在线播放| 麻豆精品在线视频| 波多野结衣在线se| 欧美国产日本高清不卡| 91麻豆国产视频| 亚洲一级毛片免费看| 91成人在线观看视频| 亚洲最大情网站在线观看| 日韩国产一区二区三区无码| 国产综合色在线视频播放线视 | 久久久黄色片| 国产精品久久久久久久伊一| 色精品视频| 5555国产在线观看| 欧美国产在线看| 国产尹人香蕉综合在线电影| 色九九视频| 91九色最新地址| 久久黄色一级视频| 久久性妇女精品免费| 精品欧美日韩国产日漫一区不卡| 欧美激情视频二区三区| 动漫精品啪啪一区二区三区| 特级aaaaaaaaa毛片免费视频| a国产精品| 欧美日韩国产在线人成app|