程式语言蔡明志编着2运算子.PPT

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
程式语言蔡明志编着2运算子

最新C程式語言 運算子 4.1 指定運算子 4.2 四則運算子 4.3 sizeof運算子 4.4 餘數運算子 4.5 遞增與遞減運算子 4.6 優先順序 4.7 位元運算子 4.8 位元運算子的用途 4.9 運算式的值 4.10 型態轉換 指定運算子 等號(=)常被誤認為“等於”的意思,但在C語言裡它卻是一種執行數值設定的運算子,譬如說: value = 100; 便會把100設定給變數value,符號=謂之為指定運算子(assignment operator);它是一個二元運算子,也就是說,該運算子將接受兩個運算元,其中的左運算元必須是個變數,嚴格說起來應該是資料儲存空間,ANSI C採用了lvalue (left value)這個術語來指稱此類運算元,譬如變數名稱便為合法的lvalue,而常數則非。指定運算子右方的運算元則可以為常數、變數或任何運算式。 下面的例子: 100 = value; 這種運算式完全沒有意義,在編譯過程間便會被偵測出來。 四則運算子 表4-1 算術運算子 程式op4s.c的執行結果如下: 結果是這樣的: sizeof運算子 運算元出現的形式有兩種:若運算元本身即為型態名稱(例如int、float...等等),則一定要括於小括號內;至於若是變數名稱是資料物件,那麼小括號的有無都沒有關係。 執行的結果是這樣的: 由本範例即可清楚地看到各種型態的實際大小,其中int與long int型態是一樣的。其實sizeof運算子所產生的值應該是unsigned int型態,不過在此以%d規格處理也沒有錯誤。以上是在Visual C++ 編譯程式所產生的結果,若使用不同的編譯程式,結果也許會有所不同。 餘數運算子 餘數運算子(modular operator)的表示記號為%,同樣是二元運算子: a % b 該運算子可取得a除以b後所留下的餘數,特別注意到本運算子僅能作用於整數型態;換句話說,a和b這兩個運算元都必須是整數資料。 分別處理時數和分鐘,其原理是相同的。 遞增與遞減運算子 遞增(減)運算子應可說是C程式風格的一項特色,它使得程式碼更為簡潔。 ++ 遞增(increment)運算子 -- 遞減(increment)運算子 遞增運算子僅完成一件單純的工作,亦即把某變數值加1: num++; 便相當於 num = num+1; 遞增運算子可依運算子的位置不同而有兩種形式:第一種是++出現於運算元前面,即所謂的“前置”(prefix)模式,另一種則為++位於運算元之後,即“後繼”(postfix)模式。 ++num; 前置模式 num++; 後繼模式 就這兩條敘述而言,最後得結果都會使num的值增加了1,不過它們的工作原理卻不相同,不同之處在於遞增運算發生的時機。當該運算子出現於運算式中時,後繼形式的num++會先以原始的num數值作用於整個運算式,然後才把num加1;至於前置形式的++num則是先增加num的值,接著才以作用後的數值帶入整個運算式。 因此result的值等於3*5,即15,然後再執行y++,所以y的值變成6,x值仍舊不變: 接著執行到另一個運算: result = x * (++y); 記住,此時的x等於3,y等於6。由於該運算為前置形式,所以效果等同於 ++y; /* y等於7 */ result = x*y; 優先順序 表4-2 運算子的運算優先順序與結合性 看看優先順序的影響: 位元運算子 C語言共擁有四種位元運算子(bitwise operator):~(NOT), (AND),|(OR),以及^(XOR),它們均運作於整數型態的資料上。另外還有兩個位移運算子(shift operator):(左移)與(右移),它們能將位元內容分別向左或向右遞移指定的次數。 當我們說位元0時即代表最右邊的低次位元(low-order bit),而位元7則為最左方的高次位元(high-order bit)。 位元 NOT 運算子: ~ 運算子 ~ 僅需一個運算元,它會將運算元的每個位元做0與1的互換: 舉例來說,變數value的型態為unsigned char,內含值是20,二進位表示法將寫成: 如果以~運算子作用於value之上,就會變成底下的位元樣式(bit pattern): 位元 AND 運算子: 運算子 是個二元運算子,對於左右兩個運算元而言,唯有在相對應的位元均為1的情形下,結果值的位元才會是1。往後我們都以真值表(True Table)來表示位元運算子的作用: 舉個例子來說: 兩個運算元中唯有位元6的兩個位元都是1,所有結果值的位元樣式裡,僅有該位元是1,其餘位

您可能关注的文档

文档评论(0)

magui + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8140007116000003

1亿VIP精品文档

相关文档