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...