C學習筆記(七)運算子與表示式

2021-07-15 01:10:20 字數 1521 閱讀 5297

1. 算術運算子——自增,自減運算子

例1

int num ;

int i = 2;

num = (i++) + (i++)+ (i++) + (i++) ;

結果:num = 6; i = 6;

解析:運算子的結束標誌:分號;逗號,函式括號() 例2

int num;

int i = 2;

num = (++i) + (++i) +(++i) +(++i);

結果:num = 19; i = 6;

解析:先算左邊兩表示式的值 num = 4+4+5+6

例3

int i = 2;

func(i++,++i); // func(3,2)

int i = 2;

func(++i,++i,i++,++i,i++); //func(7,7,4,7,2)

int i = 2;

func(i++,++i,i,i++,++i); //func(5,6,6,3,6)

解析:

++i被替換為變數名,i++被替換成數值,變數仍是變數

2.關係運算子

注意:常量寫在左邊        if(6 == num)

3.邏輯運算子

與&& 或|| 非!

短路與 短路或

4.位操作運算子

(1)按位與運算及應用

&,雙目運算子,其功能是參與運算的兩個數字對應的二進位制位相與,只有對應的二進位均為1時,結果位才為1,否則為0,參與運算的數已補碼方式出現

應用:清零特定位:掩碼mask中特定位置0

取某數特定位:掩碼mask中特定位置1

例 保留 m ~n位

unsigned int mask = (unsigned int)(((~(unsigned int)0) >> (32 - (n - m +1))) << m )

有符號數:左移0補位 ,右移符號位補位

無符號數:左/右 0 補位

(2)按位或運算及應用

應用:某些位置1,其他位不變

(3)按位異或運算及應用

應用:使特定位取反

不引入第三變數,交換a,b

方法一:

a = a ^ b;

b = a ^ b;

a = a ^ b;

方法二:(當a,b為大數時,易溢位)

a = a + b;

b = a - b;

a = a - b;

方法三:(除數不能為0)

a = a * b;

b = a / b;

a = a / b;

(4) c語言效能優化:使用位操作

C 學習筆記 4 運算子與表示式

字串連線運算 表示求餘,乘方運算需要用math函式。i i 這種表示式誰會寫!短路邏輯運算 第乙個運算元為假則不判斷第二個運算元 第乙個運算元為真則不判斷第二個運算元 一般常用 和 常去替代 和 在c 裡,string s hello,300 5 號 輸出hello,3005號 只要 前後有字串,會...

C 運算子與表示式

作用 用於處理四則運算 算術運算子包括以下符號 運算子術語示例結果 正號 33 負號 3 3 加 10 515 減10 55 乘10 550 除10 52 取模 取餘 10 31 前置遞增 a 2 b a a 3 b 3 後置遞增 a 2 b a a 3 b 2 前置遞減 a 2 b a a 1 b...

C 運算子與表示式

作用 用於處理四則運算 算術運算子包括以下符號 運算子術語示例結果 正號 33 負號 3 3 加 10 515 減10 55 乘10 550 除10 52 取模 取餘 10 31 前置遞增 a 2 b a a 3 b 3 後置遞增 a 2 b a a 3 b 2 前置遞減 a 2 b a a 1 b...