1 6 運算子和表示式

2021-07-13 08:21:36 字數 2329 閱讀 1031

程式中相當一部分資料處理和「

語句」是通過「

表示式」表達的,其中使用各種「

運算子」。◆ 在c++中對常量或變數進行運算或處理的符號稱為「

運算子」;參與運算的數稱為「

運算元」。

◆ 運算子的「

優先順序」指不同運算子在運算中的優先關係,可用序號表示,序號越小,優先順序越高。比如:

加號「+」和減號「-」的優先順序是6;乘號「*」和除號「/」的優先順序是5.「*」和「/」的優先順序高於「+」和「-」符合數**算的規律。

◆ 運算子的「

結合性」決定同優先順序的運算子對運算元的運算次序。從左到右運算稱為「右結合」,反之,從右到左稱為「左結合」。

比如,+、-的結合性是從左到右(右結合),則a+b+c-d的運算次序為:

((a+b)+c)-d    

//先算a+b,再加c,最後減d

又如,前置++和單目負-的結合性是從右到左(左結合),則-++a的運算次序為:

-(++a)    

//先做++a,再取相反數(加負號)

同一優先順序的運算子有相同的結合性。

按照要求的運算元個數,運算子分為單目(一元)運算子、雙目(二元)運算子和三目(三元)運算子:

運算子與運算元是相關聯的,相同的運算子對不同型別的運算元所執行的運算是有差異的。「表示式」就是由運算子、運算元及標點符號組成的,能取得乙個值的式子。本小節介紹的基本運算包括

算術運算

、關係運算

、邏輯運算

、位運算

等。◆  

1、算術運算子及其表示式

注意:◆  

2、賦值運算子與賦值表示式

注意:賦值號不是等號,它具有方向性。「左值」必須放在記憶體中可以訪問且可以合法修改值的儲存單元,通常只能是變數名;「右值」則可以是常量,也可以是變數或表示式,但一定能取得確定的值。

例如:下面的賦值運算是錯誤的:

3.1415926=pi;   //左值不能是常數

x+y=z;         //左值不能是表示式

設:const int n=30;

則:n=40;      //左值不能是常變數

◆  3、自增、自減運算 ◆ 

4、邏輯運算、邏輯表示式和邏輯表示式的求值優化

邏輯值:在c++中,邏輯值與整數有乙個對應關係:true對應1,false對應0。反過來,0對應false,非0整數對應true。所以,邏輯運算的結果可作為整數參與其他運算;整型數也可參與邏輯運算。

關係表示式:由關係運算子連線而成的表示式,結果為邏輯值。

邏輯表示式:由邏輯運算子連線的表示式,結果為邏輯值。關係表示式是一種最簡單的邏輯表示式。計算時,邏輯非優先順序最高,關係運算其次,邏輯與和邏輯或最低。

邏輯表示式的求值優化:在邏輯表示式的求值過程中,並非先將所有邏輯運算都做完再得結果,而是一旦表示式的值能夠確定,就不再進行後面的運算。(演示)

下面是幾個例項:

例1:假定a=3, b=0,c=5,d=2,x=6,y=2; 試分析下面的關係表示式::

a>b>c    //先求a>b,結果為true,即1,再將結果1與c比較,結果為假

a+b>c+d  //等同於(a+b)>(c+d),結果為假

a>b&&ay)-!a   

//相當於((a>b)&&(ay)-(!a)),結果為true

例2:假定a=2, b=0, c=3; 則邏輯表示式 a||b++||c-- 產生的結果是:

【分析】:a=2,第乙個運算元為1;1與任何值相或的結果總是1(true);所以不用再計算b++和c--,則此b的值仍為0,c的值仍為3;整個表示式的值為1。

例3:假定x=0, y=2, z=3; 求表示式 x&&(y=y*y)&&(z=z+3)的結果?【解答】

◆  5、位運算

◆  6、逗號運算子與逗號表示式

例如:假定a=1,b=2,c=3; 以下逗號表示式的結果是:

c=b=(a=3,4*3) //結果為:a=3,b=12,c=12,表示式的值為12

c=b=a=3,4*3  //結果為:a=3,b=3,c=3,表示式的值為12

c=(b=a=3,4*3) //結果為:a=3,b=3,c=12,表示式的值為12

◆  7、sizeof( )運算子

sizeof運算子:用於計算儲存一種資料型別或乙個變數所需的位元組數。一般格式為:

sizeof (《資料型別》) 或 sizeof(《變數名》)

關於sizeof()的幾點說明:

sizeof()應用舉例:

sizeof(int);    //值為4

sizeof( float);    //值為4

設:double x; 

則:sizeof(x);    //值為8

1 6 運算子與表示式

你所編寫的大多數語句 邏輯行 都包含了表示式 expressions 乙個表示式的簡單例子 便是2 3。表示式可以拆分成運算子 operators 與運算元 operands 接下來我們將簡要了解各類運算子及它們的用法。要記得你可以隨時在直譯器中對給出的案例裡的表示式進行求值。例如要想測試表示式 2...

運算子和表示式

運算子 1.算術運算子 定義 int i 2 1 i i 是在 使用完畢之後 2 i i 是在 之後使用 3 i i 是 3 3 是形成運算子的 4 函式是從右邊開始傳參,其中,為結束標誌 例子1 func i i i i,i 6,5,4,i,2 i最後是 7 6 5 4 7 2 例子2 i i i...

運算子和表示式

有些運算子需要兩個運算元,使用形式為 運算元 運算子 運算元,這樣的運算子就叫做二元運算子或雙目運算子,只需要乙個運算元的運算子叫做一元運算子或單目運算子。運算子具有優先順序和結合性。如果乙個表示式中有多個運算子則先進行優先順序高的運算,後進行優先順序低的運算。結合性就是指當乙個運算元左邊和右邊的運...