C語言程式集與詞法規則

2021-09-19 14:45:14 字數 1619 閱讀 6941

運算子和表示式(一)

一、關係運算子和關係表示式

1. 關係運算子

比較兩個資料給定關係的運算子稱為關係運算子。c語言中提供了6個關係運算子:>(大於)、<(小於)、>=(大於等於)、<=(小於等於)、==(等於)、!=(不等於)。

關係運算子是雙目運算子,其中前4個的優先順序高於後面2個的優先順序,但都比算術運算子的優先順序低,其結合方式為自左向右。

2. 關係表示式

由關係運算子和運算元組成的表示式稱為關係表示式,如果關係成立,則結果為真,在c語言中用1表示;關係不成立,則結果為假,在c語言中用0表示。例如:

int x=2,y=4,z=6

x+y>0(比較表示式x+y是否大於0,值為真)

x+y<0(比較表示式x+y是否小於0,值為假)

x<』a』(比較x是否小於字母a的ascii碼值97,值為真)

需要特別注意,在c語言中,比較兩個表示式是否滿足等於關係的運算子是雙等於號(==),而單等於號(=)在c語言中是賦值運算子,含義為將右邊表示式的值賦給左邊的變數。讀者在使用時一定要把兩者嚴格區分開來。

免費領取c++學習資料加薇芯:chulan980

二、邏輯運算子和邏輯表示式

1. 邏輯運算子

c語言中共有3個邏輯運算子:!(邏輯非)、&&(邏輯與)、‖(邏輯或)。

其優先順序順序是!的優先順序高於算術運算子,而&&和‖的優先順序介於賦值運算子和關係運算子之間。其結合方向為自左向右。

在c語言中沒有邏輯型別,如果表示式值為非0,則為真,用1表示;如果表示式值為0,則為假,用0表示。

!(邏輯非)為單目運算子,如果運算元為真(非0),則結果為假(0);如果運算元為假(0),則結果為真(1)。

&&(邏輯與)為雙目運算子,如果兩個運算元都為真(非0),則結果真(1);否則結果為假(0)。如果第乙個運算元為假,則直接判定結果為假,而不再判斷第二個運算元。

‖(邏輯或)為雙目運算子,如果其中乙個運算元為真(非0),則結果為真(1);若兩個運算元均為假(0),則結果為假(0)。如果第乙個運算元為真,則直接判定結果為真,不再判斷第二個運算元。

2. 邏輯表示式

由邏輯運算子構成的表示式稱為邏輯表示式。例如:

int x=0,y=3,z=-8;

!x            (結果為真,即為1)

x&&(y>0)      (和x&&y>0等價,結果為假,即為0)

x>y‖z        (和(x>y)‖z等價,結果為真,即為1)

在c語言中,如果要表示x介於0~10之間,正確的邏輯表示式為:x>=0&&x<=10,注意:0<=x<=10,而此邏輯表示式的計算方式為:先計算0<=x,然後用其結果(1或0)比較是否小於等於10。

邏輯表示式中如果有賦值運算子時需要特別注意邏輯運算子的判定規則。例如:

int x=10;

x‖x=20(表示式值為真,x的值為10)

根據邏輯或的判定規則,x的值為10,非0,所以直接判定結果為真,不再執行第二個運算元表示式,因此x中的值仍然是10。同樣,

int x=10;

x<0&&=20  (表示式值為假,x的值為10)

根據邏輯與的判定規則,第乙個運算元表示式x>0為假,所以直接判定結果為假,不再執行第二個運算元表示式。

C語言的詞法規則

提綱 本文主要介紹了c語言中的詞法規則,包括字元 注釋 接續符 識別符號 一 字元 1 注釋方式 c語言中有兩種注釋方式 1 2 2 注釋原則 1 編譯器剔除掉注釋之後,會用空格來替換原有的注釋位置。2 編譯器把 當作一段注釋的開始,將 後面的內容都當作注釋內容,直到出現 為止,表示注釋結束。3 總...

C和指標 2 2詞法規則

一.字元 1.三字母詞 三元符 trigrph include using namespace std int main 另外 的實際意義是 cout run are u ready 這就是為什麼上面這段 輸出為 預防三字母詞,加轉義符 cout run are u ready 於是就有了正確的結果...

詞法分析(二) 詞法規則的形式化 正規式與正規集

複習一下語法描述的基本概念 字母表 乙個有窮字符集,記為 字母表中的每個元素稱為字元 上的字 字串 由 中的字元構成的乙個有窮序列 不包含任何字元的序列稱為空字,記為 表示 上所有字的全體 上所有字元所能產生的字 包含空字 例 設 則 若u v為 的兩個子集,則u和v的連線 積 定義為 uv 順序不...