久久天天躁狠狠躁夜夜免费观看,精品国产粉嫩内射白浆内射双马尾,久久国产欧美日韩精品,久久久久久性高,激情欧美成人久久综合

首頁 C++運(yùn)算符

C++運(yùn)算符優(yōu)先級(jí)


C++運(yùn)算符優(yōu)先級(jí),是描述在計(jì)算機(jī)運(yùn)算計(jì)算表達(dá)式時(shí)執(zhí)行運(yùn)算的先后順序。 先執(zhí)行具有較高優(yōu)先級(jí)的運(yùn)算,然后執(zhí)行較低優(yōu)先級(jí)的運(yùn)算。 例如,我們常說的先執(zhí)行相乘和除,再執(zhí)行加減運(yùn)算。

C++運(yùn)算符優(yōu)先級(jí)表

C++運(yùn)算符優(yōu)先級(jí)表,從上到下,從左到右,優(yōu)先級(jí)依次減弱。
優(yōu)先級(jí) 運(yùn)算符 說明 結(jié)合性
1 :: 范圍解析 自左向右
2 ++  -- 后綴自增/后綴自減
() 括號(hào)
[] 數(shù)組下標(biāo)
. 成員選擇(對(duì)象)
?> 成員選擇(指針)
3 ++  -- 前綴自增/前綴自減 自右向左
+  ? 加/減
!  ~ 邏輯非/按位取反
(type) 強(qiáng)制類型轉(zhuǎn)換
* 取指針指向的值
& 某某的地址
sizeof 某某的大小
new,new[] 動(dòng)態(tài)內(nèi)存分配/動(dòng)態(tài)數(shù)組內(nèi)存分配
delete,delete[] 動(dòng)態(tài)內(nèi)存釋放/動(dòng)態(tài)數(shù)組內(nèi)存釋放
4 .*  ->* 成員對(duì)象選擇/成員指針選擇 自左向右
5 *  /   % 乘法/除法/取余
6 +  ? 加號(hào)/減號(hào)
7 <<  >> 位左移/位右移
8 <  <= 小于/小于等于
>  >= 大于/大于等于
9 ==  != 等于/不等于
10 & 按位與
11 ^ 按位異或
12 | 按位或
13 && 與運(yùn)算
14 || 或運(yùn)算
15 ?: 三目運(yùn)算符 自右向左
16 = 賦值
+=  ?= 相加后賦值/相減后賦值
*=  /=   %= 相乘后賦值/相除后賦值/取余后賦值
<<=  >>= 位左移賦值/位右移賦值
&=  ^=  |= 位與運(yùn)算后賦值/位異或運(yùn)算后賦值/位或運(yùn)算后賦值
17 throw 拋出異常
18 , 逗號(hào) 自左向右

C#運(yùn)算符優(yōu)先級(jí)舉例說明

優(yōu)先級(jí) 操作符 描述 例子 結(jié)合性
1 ()
[]
->
.
::
++
--
調(diào)節(jié)優(yōu)先級(jí)的括號(hào)操作符
數(shù)組下標(biāo)訪問操作符
通過指向?qū)ο蟮闹羔樤L問成員的操作符
通過對(duì)象本身訪問成員的操作符
作用域操作符
后置自增操作符
后置自減操作符
(a+b)/4;
array[4]=2;
ptr->age=34;
obj.age=34;
Class::age=2;
for(i=0;i<10;i++)...
for(i=10;i>0;i--)...
從左到右
2 !
~
++
--
-
+
*
&
(type)
sizeof
邏輯取反操作符
按位取反(按位取補(bǔ)) 
前置自增操作符
前置自減操作符
一元取負(fù)操作符
一元取正操作符
解引用操作符
取地址操作符
類型轉(zhuǎn)換操作符
返回對(duì)象占用的字節(jié)數(shù)操作符
if(!done)...
flags=~flags;
for(i=0;i<10;++i)...
for(i=10;i>0;--i)...
int i=-1;
int i=+1;
data=*ptr;
address=&obj;
int i=(int)floatNum;
int size=sizeof(floatNum);
從右到左
3 ->*
.*
在指針上通過指向成員的指針訪問成員的操作符
在對(duì)象上通過指向成員的指針訪問成員的操作符
ptr->*var=24;
obj.*var=24;
從左到右
4 *
/
%
乘法操作符
除法操作符
取余數(shù)操作符
int i=2*4;
float f=10/3;
int rem=4%3;
從左到右
5 +
-
加法操作符
減法操作符
int i=2+3;
int i=5-1;
從左到右
6 <<
>>
按位左移操作符
按位右移操作符
int flags=33<<1;
int flags=33>>1;
從左到右
7 <
<=
>
>=
小于比較操作符
小于或等于比較操作符
大于比較操作符
大于或等于比較操作符
if(i<42)...
if(i<=42)...
if(i>42)...
if(i>=42)...
從左到右
8 ==
!=
等于比較操作符
不等于比較操作符
if(i==42)...
if(i!=42)...
從左到右
9 & 按位與操作符 flags=flags&42; 從左到右
10 ^ 按位異或操作符 flags=flags^42; 從左到右
11 | 按位或操作符 flags=flags|42; 從左到右
12 && 邏輯與操作符 if(conditionA&&conditionB)... 從左到右
13 || 邏輯或操作符 if(conditionA||conditionB)... 從左到右
14 ?: 三元條件操作符 int i=(a>b)?a:b; 從右到左
15 =
+=
-=
*=
/=
%=
&=
^=
|=
<<=
>>=
賦值操作符
復(fù)合賦值操作符(加法)
復(fù)合賦值操作符(減法)
復(fù)合賦值操作符(乘法)
復(fù)合賦值操作符(除法)
復(fù)合賦值操作符(取余)
復(fù)合賦值操作符(按位與)
復(fù)合賦值操作符(按位異或)
復(fù)合賦值操作符(按位或)
復(fù)合賦值操作符(按位左移)
復(fù)合賦值操作符(按位右移)
int a=b;
a+=3;
b-=4;
a*=5;
a/=2;
a%=3;
flags&=new_flags;
flags^=new_flags;
flags|=new_flags;
flags<<=2;
flags>>=2;
從右到左
16 , 逗號(hào)操作符 for(i=0,j=0;i<10;i++,j++)... 從左到右

C++中的運(yùn)算符和運(yùn)算符優(yōu)先級(jí)總結(jié)(摘抄)

運(yùn)算符是一種告訴編譯器執(zhí)行特定的數(shù)學(xué)或邏輯操作的符號(hào)。C++ 內(nèi)置了豐富的運(yùn)算符,并提供了以下類型的運(yùn)算符:

  • 算術(shù)運(yùn)算符。
  • 關(guān)系運(yùn)算符。
  • 邏輯運(yùn)算符。
  • 位運(yùn)算符。
  • 賦值運(yùn)算符。
  • 雜項(xiàng)運(yùn)算符。

一、算術(shù)運(yùn)算符

下表顯示了 C++ 支持的所有算術(shù)運(yùn)算符。假設(shè)變量 A 的值為 10,變量 B 的值為 20,則:

運(yùn)算符 描述 實(shí)例
+ 把兩個(gè)操作數(shù)相加 A+B將得到30
- 從第一個(gè)操作數(shù)中減去第二個(gè)操作數(shù) A-B將得到-10
* 把兩個(gè)操作數(shù)相乘 A*B將得到200
/ 分子除以分母 B/A將得到2
% 取模運(yùn)算符,整除后的余數(shù) B%A將得到0
++ 自增運(yùn)算符,整數(shù)值增加1 A++將得到11
-- 自減運(yùn)算符,整數(shù)值減少1 A--將得到9

算術(shù)運(yùn)算符實(shí)例:

請(qǐng)看下面的實(shí)例,了解 C++ 中所有可用的算術(shù)運(yùn)算符,復(fù)制并黏貼下面的 C++ 程序到 test.cpp 文件中,編譯并運(yùn)行程序即可。

#include <iostream> using namespace std; main() { int a = 21; int b = 10; int c ; c = a + b; cout << "Line 1 - c 的值是 " << c << endl ; c = a - b; cout << "Line 2 - c 的值是 " << c << endl ; c = a * b; cout << "Line 3 - c 的值是 " << c << endl ; c = a / b; cout << "Line 4 - c 的值是 " << c << endl ; c = a % b; cout << "Line 5 - c 的值是 " << c << endl ; c = a++; cout << "Line 6 - c 的值是 " << c << endl ; c = a--; cout << "Line 7 - c 的值是 " << c << endl ; return 0; } 

當(dāng)上面的代碼被編譯和執(zhí)行時(shí),它會(huì)產(chǎn)生下列結(jié)果:

Line 1 - c 的值是 31 Line 2 - c 的值是 11 Line 3 - c 的值是 210 Line 4 - c 的值是 2 Line 5 - c 的值是 1 Line 6 - c 的值是 21 Line 7 - c 的值是 22 } 

二、關(guān)系運(yùn)算符

下表顯示了 C++ 支持的所有關(guān)系運(yùn)算符。同樣還是假設(shè)變量 A 的值為 10,變量 B 的值為 20,則:

運(yùn)算符
描述
實(shí)例
== 檢查兩個(gè)操作數(shù)的值是否相等,如果相等則條件為真。 (A==B)不為真。
!= 檢查兩個(gè)操作數(shù)的值是否相等,如果不相等則條件為真。 (A!=B)為真。
> 檢查左操作數(shù)的值是否大于右操作數(shù)的值,如果是則條件為真。 (A>B)不為真。
< 檢查左操作數(shù)的值是否小于右操作數(shù)的值,如果是則條件為真。 (A<B)為真。
>= 檢查左操作數(shù)的值是否大于或等于右操作數(shù)的值,如果是則條件為真。 (A>=B)不為真。
<= 檢查左操作數(shù)的值是否小于或等于右操作數(shù)的值,如果是則條件為真。 (A<=B)為真。

關(guān)系運(yùn)算符實(shí)例:

請(qǐng)看下面的實(shí)例,了解 C++ 中所有可用的關(guān)系運(yùn)算符,復(fù)制并黏貼下面的 C++ 程序到 test.cpp 文件中,編譯并運(yùn)行程序即可。

#include <iostream> using namespace std; main() { int a = 21; int b = 10; int c ; if( a == b ) { cout << "Line 1 - a 等于 b" << endl ; } else { cout << "Line 1 - a 不等于 b" << endl ; } if ( a < b ) { cout << "Line 2 - a 小于 b" << endl ; } else { cout << "Line 2 - a 不小于 b" << endl ; } if ( a > b ) { cout << "Line 3 - a 大于 b" << endl ; } else { cout << "Line 3 - a 不大于 b" << endl ; } /* 改變 a 和 b 的值 */ a = 5; b = 20; if ( a <= b ) { cout << "Line 4 - a 小于或等于 b" << endl ; } if ( b >= a ) { cout << "Line 5 - b 大于或等于 b" << endl ; } return 0; }

當(dāng)上面的代碼被編譯和執(zhí)行時(shí),它會(huì)產(chǎn)生下列結(jié)果:

Line 1 - a 不等于 b Line 2 - a 不小于 b Line 3 - a 大于 b Line 4 - a 小于或等于 b Line 5 - b 大于或等于 b

三、邏輯運(yùn)算符

下表顯示了 C++ 支持的所有關(guān)系邏輯運(yùn)算符。假設(shè)變量 A 的值為 1,變量 B 的值為 0,則:

運(yùn)算符
描述
實(shí)例
&& 稱為邏輯與運(yùn)算符。如果兩個(gè)操作數(shù)都非零,則條件為真。 (A&&B)為假。
|| 稱為邏輯或運(yùn)算符。如果兩個(gè)操作數(shù)中有任意一個(gè)非零,則條件為真。 (A||B)為真。
! 稱為邏輯非運(yùn)算符。用來逆轉(zhuǎn)操作數(shù)的邏輯狀態(tài)。如果條件為真則邏輯非運(yùn)算符將使其為假。 !(A&&B)為真。

邏輯運(yùn)算符實(shí)例:

請(qǐng)看下面的實(shí)例,了解 C++ 中所有可用的邏輯運(yùn)算符,復(fù)制并黏貼下面的 C++ 程序到 test.cpp 文件中,編譯并運(yùn)行程序即可。

#include <iostream> using namespace std; main() { int a = 5; int b = 20; int c ; if ( a && b ) { cout << "Line 1 - 條件為真"<< endl ; } if ( a || b ) { cout << "Line 2 - 條件為真"<< endl ; } /* 改變 a 和 b 的值 */ a = 0; b = 10; if ( a && b ) { cout << "Line 3 - 條件為真"<< endl ; } else { cout << "Line 4 - 條件不為真"<< endl ; } if ( !(a && b) ) { cout << "Line 5 - 條件為真"<< endl ; } return 0; }

當(dāng)上面的代碼被編譯和執(zhí)行時(shí),它會(huì)產(chǎn)生下列結(jié)果:

Line 1 - 條件為真 Line 2 - 條件為真 Line 3 - 條件不為真 Line 4 - 條件為真

四、位運(yùn)算符

位運(yùn)算符作用于位,并逐位執(zhí)行操作。&、 | 和 ^ 的真值表如下所示:

p q p&q p|q p^q
0 0 0 0 0
0 1 0 1 1
1 1 1 1 0
1 0 0 1 1

假設(shè)如果 A = 60,且 B = 13,現(xiàn)在以二進(jìn)制格式表示,它們?nèi)缦滤荆?/p>

A = 0011 1100 B = 0000 1101 ----------------- A&B = 0000 1100 A|B = 0011 1101 A^B = 0011 0001 ~A = 1100 0011

下表顯示了 C++ 支持的位運(yùn)算符。假設(shè)變量 A 的值為 60,變量 B 的值為 13,則:

運(yùn)算符
描述
實(shí)例
& 如果同時(shí)存在于兩個(gè)操作數(shù)中,二進(jìn)制AND運(yùn)算符復(fù)制一位到結(jié)果中。 (A&B)將得到12,即為0000 1100
| 如果存在于任一操作數(shù)中,二進(jìn)制OR運(yùn)算符復(fù)制一位到結(jié)果中。 (A|B)將得到61,即為0011 1101
^ 如果存在于其中一個(gè)操作數(shù)中但不同時(shí)存在于兩個(gè)操作數(shù)中,二進(jìn)制
異或運(yùn)算符復(fù)制一位到結(jié)果中。
(A^B)將得到49,即為0011 0001
~ 二進(jìn)制補(bǔ)碼運(yùn)算符是一元運(yùn)算符,具有"翻轉(zhuǎn)"位效果。 (~A)將得到-61,即為1100 0011,2的補(bǔ)碼形式,帶符號(hào)的二進(jìn)制數(shù)。
<< 二進(jìn)制左移運(yùn)算符。左操作數(shù)的值向左移動(dòng)右操作數(shù)指定的位數(shù)。 A<<2將得到240,即為1111 0000
>> 二進(jìn)制右移運(yùn)算符。左操作數(shù)的值向右移動(dòng)右操作數(shù)指定的位數(shù)。 A>>2將得到15,即為0000 1111

運(yùn)算符實(shí)例:

請(qǐng)看下面的實(shí)例,了解 C++ 中所有可用的邏輯運(yùn)算符,復(fù)制并黏貼下面的 C++ 程序到 test.cpp 文件中,編譯并運(yùn)行程序即可。

#include <iostream> using namespace std; main() { unsigned int a = 60; // 60 = 0011 1100 unsigned int b = 13; // 13 = 0000 1101 int c = 0; c = a & b; // 12 = 0000 1100 cout << "Line 1 - c 的值是 " << c << endl ; c = a | b; // 61 = 0011 1101 cout << "Line 2 - c 的值是 " << c << endl ; c = a ^ b; // 49 = 0011 0001 cout << "Line 3 - c 的值是 " << c << endl ; c = ~a; // -61 = 1100 0011 cout << "Line 4 - c 的值是 " << c << endl ; c = a << 2; // 240 = 1111 0000 cout << "Line 5 - c 的值是 " << c << endl ; c = a >> 2; // 15 = 0000 1111 cout << "Line 6 - c 的值是 " << c << endl ; return 0; }

當(dāng)上面的代碼被編譯和執(zhí)行時(shí),它會(huì)產(chǎn)生下列結(jié)果:

Line 1 - c 的值是 12 Line 2 - c 的值是 61 Line 3 - c 的值是 49 Line 4 - c 的值是 -61 Line 5 - c 的值是 240 Line 6 - c 的值是 15

五、賦值運(yùn)算符

下表列出了 C++ 支持的賦值運(yùn)算符:

運(yùn)算符 描述 實(shí)例
= 簡單的賦值運(yùn)算符,把右邊操作數(shù)的值賦給左邊操作數(shù) C=A+B將把A+B的值賦給C
+= 加且賦值運(yùn)算符,把右邊操作數(shù)加上左邊操作數(shù)的結(jié)果賦值給左邊操作數(shù) C+=A相當(dāng)于C=C+A
-= 減且賦值運(yùn)算符,把左邊操作數(shù)減去右邊操作數(shù)的結(jié)果賦值給左邊操作數(shù) C-=A相當(dāng)于C=C-A
*= 乘且賦值運(yùn)算符,把右邊操作數(shù)乘以左邊操作數(shù)的結(jié)果賦值給左邊操作數(shù) C=A相當(dāng)于C=CA
/= 除且賦值運(yùn)算符,把左邊操作數(shù)除以右邊操作數(shù)的結(jié)果賦值給左邊操作數(shù) C/=A相當(dāng)于C=C/A
%= 求模且賦值運(yùn)算符,求兩個(gè)操作數(shù)的模賦值給左邊操作數(shù) C%=A相當(dāng)于C=C%A
<<= 左移且賦值運(yùn)算符 C<<=2等同于C=C<<2
>>= 右移且賦值運(yùn)算符 C>>=2等同于C=C>>2
&= 按位與且賦值運(yùn)算符 C&=2等同于C=C&2
^= 按位異或且賦值運(yùn)算符 C^=2等同于C=C^2
|= 按位或且賦值運(yùn)算符 C|=2等同于C=C|2

賦值運(yùn)算符實(shí)例:

請(qǐng)看下面的實(shí)例,了解 C++ 中所有可用的賦值運(yùn)算符,復(fù)制并黏貼下面的 C++ 程序到 test.cpp 文件中,編譯并運(yùn)行程序即可。

#include <iostream> using namespace std; main() { int a = 21; int c ; c = a; cout << "Line 1 - = 運(yùn)算符實(shí)例,c 的值 = : " <<c<< endl ; c += a; cout << "Line 2 - += 運(yùn)算符實(shí)例,c 的值 = : " <<c<< endl ; c -= a; cout << "Line 3 - -= 運(yùn)算符實(shí)例,c 的值 = : " <<c<< endl ; c *= a; cout << "Line 4 - *= 運(yùn)算符實(shí)例,c 的值 = : " <<c<< endl ; c /= a; cout << "Line 5 - /= 運(yùn)算符實(shí)例,c 的值 = : " <<c<< endl ; c = 200; c %= a; cout << "Line 6 - %= 運(yùn)算符實(shí)例,c 的值 = : " <<c<< endl ; c <<= 2; cout << "Line 7 - <<= 運(yùn)算符實(shí)例,c 的值 = : " <<c<< endl ; c >>= 2; cout << "Line 8 - >>= 運(yùn)算符實(shí)例,c 的值 = : " <<c<< endl ; c &= 2; cout << "Line 9 - &= 運(yùn)算符實(shí)例,c 的值 = : " <<c<< endl ; c ^= 2; cout << "Line 10 - ^= 運(yùn)算符實(shí)例,c 的值 = : " <<c<< endl ; c |= 2; cout << "Line 11 - |= 運(yùn)算符實(shí)例,c 的值 = : " <<c<< endl ; return 0; }

當(dāng)上面的代碼被編譯和執(zhí)行時(shí),它會(huì)產(chǎn)生下列結(jié)果:

Line 1 - = 運(yùn)算符實(shí)例,c 的值 = 21 Line 2 - += 運(yùn)算符實(shí)例,c 的值 = 42 Line 3 - -= 運(yùn)算符實(shí)例,c 的值 = 21 Line 4 - *= 運(yùn)算符實(shí)例,c 的值 = 441 Line 5 - /= 運(yùn)算符實(shí)例,c 的值 = 21 Line 6 - %= 運(yùn)算符實(shí)例,c 的值 = 11 Line 7 - <<= 運(yùn)算符實(shí)例,c 的值 = 44 Line 8 - >>= 運(yùn)算符實(shí)例,c 的值 = 11 Line 9 - &= 運(yùn)算符實(shí)例,c 的值 = 2 Line 10 - ^= 運(yùn)算符實(shí)例,c 的值 = 0 Line 11 - |= 運(yùn)算符實(shí)例,c 的值 = 2

六、雜項(xiàng)運(yùn)算符

下表列出了 C++ 支持的其他一些重要的雜項(xiàng)運(yùn)算符。

運(yùn)算符 描述
sizeof sizeof運(yùn)算符返回變量的大小。例如,sizeof(a)將返回4,其中a是整數(shù)。
Condition?X:Y 條件運(yùn)算符。如果Condition為真?則值為X:否則值為Y。
, 逗號(hào)運(yùn)算符會(huì)順序執(zhí)行一系列運(yùn)算。整個(gè)逗號(hào)表達(dá)式的值是以逗號(hào)分隔的列表中的最后一個(gè)表達(dá)式的值。
.(點(diǎn))和->(箭頭) 成員運(yùn)算符用于引用類、結(jié)構(gòu)和共用體的成員。
Cast 強(qiáng)制轉(zhuǎn)換運(yùn)算符把一種數(shù)據(jù)類型轉(zhuǎn)換為另一種數(shù)據(jù)類型。例如,int(2.2000)將返回2。
& 指針運(yùn)算符&返回變量的地址。例如&a;將給出變量的實(shí)際地址。
* 指針運(yùn)算符*指向一個(gè)變量。例如,*var;將指向變量var。

雜項(xiàng)運(yùn)算符實(shí)例:

請(qǐng)看下面的實(shí)例,了解 C++ 中運(yùn)算符的優(yōu)先級(jí),復(fù)制并黏貼下面的 C++ 程序到 test.cpp 文件中,編譯并運(yùn)行程序即可。

對(duì)比有括號(hào)和沒有括號(hào)時(shí)的區(qū)別,這將產(chǎn)生不同的結(jié)果。因?yàn)?()、 /、 * 和 + 有不同的優(yōu)先級(jí),高優(yōu)先級(jí)的操作符將優(yōu)先計(jì)算。

#include <iostream> using namespace std; main() { int a = 20; int b = 10; int c = 15; int d = 5; int e; e = (a + b) * c / d; // ( 30 * 15 ) / 5 cout << "(a + b) * c / d 的值是 " << e << endl ; e = ((a + b) * c) / d; // (30 * 15 ) / 5 cout << "((a + b) * c) / d 的值是 " << e << endl ; e = (a + b) * (c / d); // (30) * (15/5) cout << "(a + b) * (c / d) 的值是 " << e << endl ; e = a + (b * c) / d; // 20 + (150/5) cout << "a + (b * c) / d 的值是 " << e << endl ; return 0; }

當(dāng)上面的代碼被編譯和執(zhí)行時(shí),它會(huì)產(chǎn)生下列結(jié)果:

(a + b) * c / d 的值是 90 ((a + b) * c) / d 的值是 90 (a + b) * (c / d) 的值是 90 a + (b * c) / d 的值是 50

更新時(shí)間:2023-09-24 08:11:22

支付掃碼

所有贊助/開支都講公開明細(xì),用于網(wǎng)站維護(hù):贊助名單查看

查看我的收藏

正在加載... ...