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

解析C語言的運算符和表達式

2008-12-31 00:00:00
電腦知識與技術 2008年31期

摘要:C語言的運算符具有使用靈活的特點,可以用于解決許多其它編程語言難以處理的復雜問題。但在實際應用中,因對其理解不深,可能出現各種難以意料的結果。該文對運算符教學過程中使用容易出現問題的地方進行了分析,并給出提出了相應的解決方法。

關鍵詞:C 語言;運算符;程序設計;邏輯表達式

中圖分類號:TP311文獻標識碼:A文章編號:1009-3044(2008)31-0900-02

Analysis of Operators and Expressions of C Language

DING Hui1,2

(1.Jiangsu University, Zhenjiang 212013, China; 2.Nanjing Forest Police College, Nanjing 210046, China)

Abstract: The high flexibility feature of operators of C language makes it useful to address some complex problems which other programming languages can not handle perfectly. However, erroneous understanding of operators often leads to some unexpected results. This paper discusses the problems easy to occur in the process of teaching are analyzed and gives corresponding solution methods to avoid above question.

Key words: C language; operator; programming; logical expression

1 引言

C 語言是高級程序設計語言中的一種, 隨著計算機和互聯網的普及, 它已成為大中專院校計算機專業和非計算機專業的必修科目, 但由于C 語言語法多、數據類型豐富等諸多問題, 學好、學精并非一件易事。在這些問題中, 其中之一就是關于運算符的使用, 該文將對C中的運算符從定義到使用作一介紹。

C語言的內部運算符很豐富,運算符是告訴編譯程序執行特定算術或邏輯操作的符號。C語言有三大運算符:算術、關系與邏輯、位操作。另外,C還有一些非凡的運算符,用于完成一些非凡的任務。各種運算符的優先級如圖1所示。

2 算術運算符與算術表達式

在C語言中,運算符“+”、“-”、“*”和“/”的用法與大多數計算機語言的相同,幾乎可用于所有C語言內定義的數據類型。當“/”被用于整數或字符時,結果取整。例如,在整數除法中,10/3=3。一元減法的實際效果等于用-1乘單個操作數,即任何數值前放置減號將改變其符號。模運符“%”在C語言中也同它在其它語言中的用法相同。但是要注意,模運算取整數除法的余數,算所以“%”不能用于float和double類型。

2.1 算術運算符的優先級與結合性

C語言規定了運算符的優先級和結核性。在表達式求值時,先按運算符的優先級別高低次序執行,例如先乘除后加減。算術運算符的結合方向為“自左至右”,即先左后右,又稱“左結合性”,即運算對象先與左邊的運算符結合。

2.2 自增和自減

C語言中有兩個很有用的運算符,通常在其它計算機語言中是找不到它們的——自增和自減運算符,++和--。運算符“++”是操作數加1,而“--”是操作數減1,換句話說:x=x+1;同++x;x=x-1;同-x;自增和自減運算符可用在操作數之前,也可放在其后,例如:x=x+1;可寫成++x;或x++;但在表達式中這兩種用法是有區別的。自增或自減運算符在操作數之前,C語言在引用操作數之前就先執行加1或減1操作;運算符在操作數之后,C語言就先引用操作數的值,而后再進行加1或減1操作。

請看下例: x=10;y=++x;此時,y=11。假如程序改為: x=10;y=x++;則y=10。在這兩種情況下,x都被置為11,但區別在于設置的時刻,這種對自增和自減發生時刻的控制是非常有用的。在大多數C編譯程序中,為自增和自減操作生成的程序代碼比等價的賦值語句生成的代碼要快得多,所以盡可能采用加1或減1運算符是一種好的選擇。

2.3 強制類型轉換運算符

可以利用強制類型轉換運算符將一個表達式轉換成所需類型。其一般形式為:(類型名)(表達式),注意,表達式應該用括號括起來。如果寫成(int)x+y;則只將x轉換成整型,然后與y相加。

有兩種類型轉換,一種是在運算時不必用戶指定,系統自動進行的類型轉換,如3+6.5,如果結果為float型,結果為9.5。第二種是強制類型轉換,當自動類型轉換不能實現目的時,可以用強制類型轉換。如“%”運算符要求其兩側均為整型量,若x為float型,則“x%3”不合法,必須用“(int)x%3”。

3 關系和邏輯運算符

關系運算符中的“關系”二字指的是一個值與另一個值之間的關系,C語言的關系運算符有6個,如表1所示。用關系運算符把兩個C語言表達式連接起來的式子稱為關系表達式。其形式為:表達式1 關系運算符 表達式2;如x+1>y+z。關系表達式的結果只有兩個:1或0。當關系表達式成立時,表達式的值為1;當關系表達式不成立時,表達式的值為0。

邏輯運算符中的“邏輯”二字指的是連接關系的方式。因為關系和邏輯運算符常在一起使用,所以將它們放在一起討論。關系和邏輯運算符概念中的要害是True(真)和Flase(假)。C語言中,非0為True,0為Flase。使用關系或邏輯運算符的表達式對Flase和Ture分別返回值0或1(見表2)。

3.1 關系運算符與關系表達式

C語言提供6種關系運算符:<,<=,>,>=, ==,!=。用關系運算符將兩個表達式(可以是算術表達式或關系表達式、邏輯表達式、復制表達式、字符表達式)連接起來的式子,稱關系表達式。

3.2 邏輯運算符與邏輯表達式

用邏輯運算符將關系表達式或邏輯量連接起來的式子就是邏輯表達式。C語言提供3種邏輯運算符:邏輯與(相當于“并且”),||邏輯或(相當于“或者”),!邏輯非(相當于“否定”)。在判斷一個數據的“真”或“假”時,卻以0和非0為根據:如果為0,則判定為“邏輯假”;如果為非0,則判定為“邏輯真”。例如,假設num=12,則表達式!num值為0、表達式num>=1num<=31值為1、表達式num||num>31值為1。

4 條件運算符和條件表達式

條件運算符是C語言中唯一的三目運算符。由問號“?”和“:”兩個字符組成,用戶連接3個運算對象。用條件運算“?”和“:”組成的表達式稱為條件表達式。其中運算對象可以是任何合法的算術、關系、邏輯、賦值或條件等各種類型的表達式。條件表達式的格式為:邏輯表達式1?表達式2:表達式3。運算規則:當表達式1為真時,整個表達式的值為表達式2的值;表達式1為假時,整個表達式的值為表達式3的值。例如:當a=3、b=2時,執行表達式后a>b?a:b,條件表達式的值為3。

5 賦值運算符和表達式

C語言的賦值符有:=、+=、-=、*=、/=、%=等。其中“=”是簡單賦值運算符,其他是復合賦值運算符。簡單賦值表達式的一般形式是:變量名=表達式,系統對該賦值表達式的處理過程是:先計算“=”右側表達式的值,然后將其結果的數據類型轉換為左側變量的數據類型,最后將轉換后的結果賦值給左側變量。賦值表達式的值是左側變量所得到的值。復合賦值運算符是由其他運算符和簡單賦值運算符組合而成的。如表3。

6 逗號運算符和表達式

C語言的逗號運算符是“,”。在所有C語言運算符中其優先級最低。逗號表達式的一般形式為:表達式1,表達式2,表達式3,…,表達式n。在逗號表達式中,按照從左到右的順序依次處理各表達式,而以最后一個表達式的值作為整個逗號表達式的結果值。

7 位操作符

與其它語言不同,C語言支持全部的位操作符(BitwiseOperators)。因為C語言的設計目的是取代匯編語言,所以它必須支持匯編語言所具有的運算能力。位操作是對字節或字中的位(bit)進行測試、置位或移位處理,這里字節或字是針對C標準中的char和int數據類型而言的。位操作不能用于float、double、longdouble、void或其它復雜類型。表4給出了位操作的操作符。位操作中的AND、OR和NOT(1的補碼)的真值表與邏輯運算等價,唯一不同的是位操作是逐位進行運算的。

8 結束語

運算符與表達式是任何程序中使用頻率最高的數據, 如何正確地理解和熟練地使用運算符和表達式一直都是初學者感到困難的一件事, 希望本文能對學習程序設計語言者起到指導作用。

參考文獻:

[1] 馬程,陳杰.慎用C語言中的運算符及表達式[J].科技信息,,2007(27):533-534.

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

[3] 崔武子.C語言程序設計實踐教程[M].北京:清華大學出版社,2005.

[4] 何光明.C語言程序設計與應用開發[M].北京:清華大學出版社,2006.

[5] 邱力.C語言程序設計[M].北京:清華大學出版社,2004.

主站蜘蛛池模板: 午夜欧美在线| 精品久久久久成人码免费动漫| 亚洲第一综合天堂另类专| 日韩精品无码免费一区二区三区| 亚洲αv毛片| 国产欧美精品专区一区二区| 凹凸精品免费精品视频| 99热这里只有精品5| 四虎影视永久在线精品| 在线免费观看a视频| 欧美在线观看不卡| 欧美久久网| 少妇精品久久久一区二区三区| 19国产精品麻豆免费观看| 欧美日韩91| AV不卡无码免费一区二区三区| 久久a毛片| 成人亚洲国产| 18禁黄无遮挡网站| 亚洲精品男人天堂| 99精品免费欧美成人小视频 | 国产精品亚洲日韩AⅤ在线观看| 久久伊人久久亚洲综合| 中文字幕在线播放不卡| 国产欧美在线观看一区| 玖玖精品视频在线观看| 91av成人日本不卡三区| 久久久久久高潮白浆| 亚洲一区二区日韩欧美gif| 亚洲福利视频一区二区| 久久福利网| 亚洲色图欧美| 免费激情网址| 亚洲av无码成人专区| 91在线无码精品秘九色APP| 91亚洲精品国产自在现线| 丁香五月亚洲综合在线| 亚洲中文字幕23页在线| 99久久精品视香蕉蕉| 国产精品久线在线观看| 成人字幕网视频在线观看| 亚洲香蕉在线| 人妻免费无码不卡视频| 91po国产在线精品免费观看| 9966国产精品视频| 欧美国产精品拍自| 无码精品国产dvd在线观看9久| 欧美精品二区| 久久精品这里只有国产中文精品| 成人精品午夜福利在线播放| 在线视频亚洲色图| 久久夜色精品国产嚕嚕亚洲av| 国产日产欧美精品| 在线视频精品一区| 国产一级毛片yw| 亚洲人精品亚洲人成在线| 亚洲成人在线网| 四虎亚洲精品| 国产午夜人做人免费视频| 欧美视频在线观看第一页| 免费aa毛片| 国产精品久久久久久久伊一| 88国产经典欧美一区二区三区| 青草精品视频| 亚洲第一综合天堂另类专| 国产SUV精品一区二区6| 国产特级毛片aaaaaaa高清| 国产精品第页| 香蕉eeww99国产精选播放| 国产网站在线看| 18禁色诱爆乳网站| 国产h视频在线观看视频| AV网站中文| 四虎永久免费地址| 成年av福利永久免费观看| 亚洲欧美日韩天堂| 色欲不卡无码一区二区| av在线人妻熟妇| 亚洲天堂网2014| 日韩欧美高清视频| 天堂在线视频精品| 中文字幕人成乱码熟女免费|