C 語言基礎 02 運算子

2022-05-30 01:36:11 字數 4428 閱讀 2951

加減乘除求餘數 + - * / %

int a = 2, b = 4;

​int c = a + b;

cout << "c = " << c << endl;// 6

​int d = a - b;

cout << "d = " << d << endl;// -2

​int e = a * b;

cout << "e = " << e << endl;// 8

​int f = 5 / 2;

cout << "f = " << f << endl;// 0

// 0:int是整型 整數運算 結果還是整數,小數部分直接忽略

​int g = b / a;

cout << "g = " << g << endl;// 2

​float f0 = 2, f1 = 4;

float ff = f0 / f1;

cout << "ff = " << ff << endl;// 0.5

​int num = 5 % 2;// 求5除以2的餘數%:求餘 取模

cout << "num = " << num << endl;

​int n = 5;

float m = 2.0;

float number = n / m;

cout << "number = " << number << endl;// 2.5

// 當參與運算的資料存在小數時,結果是小數

​// % 兩邊都必須是整數

​// 總結:運算結果以參與運算的資料中精度高的為準

大於》

小於<

等於等於==

大於等於》=

小於等於<=

不等於!=

bool b = 3 > 7;

cout << "b = " << b << endl;

​bool b = 3 != 3;

cout << "b = " << b << endl;

運算規則:先比較 然後 成立為真 不成立為假

注意:運算順序為從左至右

運算完成之後會給出乙個bool值

與&&前後兩者都為真,表示式為真 否則為假

bool b = (2 > 3) && (3 < 4);

cout << "b = " << b << endl;// 0

​bool b = (2 < 3) && (3 < 4);

cout << "b = " << b << endl;// 1

或||前者或後者為真,表示式為真 否則為假

bool b = (2 > 3) || (3 < 4);

cout << "b = " << b << endl;// 1

​bool b = (2 < 3) || (3 < 4);

cout << "b = " << b << endl;// 1

​bool b = (2 > 3) || (3 > 4);

cout << "b = " << b << endl;// 0

非!反轉真假

bool b = !(2 > 3);

cout << "b = " << b << endl;// 1

注意:運算順序為從左至右

1 對於&&運算子,由於需要前後都為真整個表示式才為真,所以,當前面為假時,確定整個表示式為假,所以不會繼續運算後面的表示式。

2 對於||運算子,由於只要前後有乙個為真整個表示式就為真,所以,當前面為真時,確定整個表示式為真,所以不會繼續運算後面的表示式。

eg1:

int a = 1, b = 2;

bool bo = (a = a + b) && (b = a + b);

cout << "a = " << a << endl;// 3

cout << "b = " << b << endl;// 5

cout << "bo = " << bo << endl;// 1

​eg2:

int a = 1, b = 2;

bool bo = (a = a + b) || (b = a + b);

cout << "a = " << a << endl;// 3

cout << "b = " << b << endl;// 2

cout << "bo = " << bo << endl;// 1

​// 需要特別注意是否會繼續向後運算

賦值 =

可以和算術運算子組合使用(復合賦值運算子)

+=-=*=/=%=

int a = 1, b = 2;

a -= 1;// 等價於 a = a - 1;

cout << "a = " << a << endl;// 0

a += 2;// 等價於 a = a + 2;

cout << "a = " << a << endl;// 2

a *= b;// 等價於 a = a * b;

cout << "a = " << a << endl;// 4

a /= b;// 等價於 a = a / b;

cout << "a = " << a << endl;// 2

a += 1;// 等價於 a = a + 1;3

a %= 2;// 等價於 a = a % 2;

cout << "a = " << a << endl;// 1

由於自身參與運算並且最後會改變自身的值,所以必須是變數。

++:自身加一--:自身減一

int a = 1;

a++;// 等價於 a = a + 1;

cout << "a = " << a << endl;// 2

++a;// 等價於 a = a + 1;

cout << "a = " << a << endl;// 3​​

int c0 = 0;

bool b0 = c0++;// 後置 先用c0給b0賦值 再c0++

cout << "c0 = " << c0 << endl;// 1

cout << "b0 = " << b0 << endl;// 0

​int c1 = 0;

bool b1 = ++c1;// 前置 先c1++ 再用c0給b0賦值

cout << "c1 = " << c1 << endl;// 1

cout << "b1 = " << b1 << endl;// 1

// 後置:先用再加前置:先加再用

同上

//(表示式1) ? (表示式2) : (表示式3);

//規則:先執行表示式1 為真執行表示式2 為假執行表示式3

int a = 1, b = 2, c = 3;

(a > 0) ? (b++) : (c++);

cout << "a = " << a << endl; // 1

cout << "b = " << b << endl; // 3

cout << "c = " << c << endl; // 3

逗號 ,

// 逗號運算子 ,

// 運算規則:從左至右依次運算 取最後乙個表示式的值(表示式個數不受限制)

int a = 1, b = 2, c = 3;

int num = ((a++), (a = b + 1), c, (a + b + c));

cout << "a = " << a << endl; // 3

cout << "b = " << b << endl; // 2

cout << "c = " << c << endl; // 3

cout << "num = " << num << endl; // 8

()括號括起來的先算

箭頭->

點.負號-

取內容*

取位址&

求位元組數sizeof

按位非~

左移<<

右移》按位與&

按位異或^

按位或|

括號優先順序最高()

算術運算子優先順序高於關係運算子

賦值在逗號前面=+=-=……

逗號優先順序最低,

優先順序操作符1()

->.::

!~++--

2- (負號)

* (取內容)

& (取位址)

sizeof

3->*.*4

* (乘)/%

5+-6

<<

>>

7<

<=

>

>=8==

!=9& (按位與)10^

11|12&&

13||

14? :15=

+=-=

etc.16,

c語言基礎02(運算子)

1.浮點數補充 指數的取值範圍 127 128 float 的取值精度 2 23 2 23 對於double 型浮點數在計算機記憶體中與float 類似,但其階碼有十一位,尾數五十二位。2.大端小端 ox123456789 若計算機中以 12 34 56 78 儲存 低位址放高資料,此為大端 手機,...

C語言基礎 運算子

運算子 功能說明用途 按位取反 按位與 取出某數中想要的位 按位或 按位異或 1.特定位反轉 11001010 1111後四位反轉 2.交換兩個數的值 a a b b a b a a b 3.加密 a a b b 右移 左移 關於特殊運算子 1.賦值運算子 注 不能對常量賦值,不能對唯讀變數賦值 c...

c語言基礎 運算子。

運算子 算術運算子 運算子舉例 加 a b 減 a b 乘 ab 除 a b 求餘 a b 加減和乘法運算子不必多說,我們來看看除法運算子和求餘運算子 除法運算子 兩個實數相除的結果為雙精度實數,兩個整數相除的結果為整數 一般向0取整 例如 5 3 執行結果為1,捨去了小數部分 根據整數除法特性 四...