1、算術操作符:
+ - * / %(加、減、乘、除,取餘)
注意:(1)%操作符的兩個運算元必須是整數。
(2)/ 分母不能為 0。
2、移位操作符:
(1)<< 左移操作符:左邊位元位移出不要,右邊空出的位元位加 0。
(2)>> 右移操作符:<1>邏輯移位:左邊用0填充,右邊丟棄。
<2>算數移位:左邊用原該值的符號位填充,右邊丟棄。(無符號數:右移加0;有符號數:正數加0,負數加符號位。)
【num>>1:num右移一位,但並不改變原始資料,因為它沒被賦值。】(不能左右移負數字)
3、位操作符:(運算元必須是整數)
&:按位與(1與1是1, 0與任何數都是0)
| :按位或(只有兩個0或才是0)
^:按位異或(異為真同為假)(相同清零,任何數字和0異或為它本身)
//程式設計實現:
//兩個int(32位)整數m和n的二進位制表達中,有多少個位(bit)不同?
//輸入例子 :
//1999 2299
//輸出例子 : 7
#include#include#pragma warning(disable:4996)
int main()
; for (i = 0; i <32; i++)//將整數化為二進位制數 }
printf("%d\n", count);
system("pause");
return 0;
}
4、賦值操作符:
可重新給變數賦值。
int weight = 120;//初始化
weight = 80;//賦值
5、復合賦值符:
+=:x=x+10即 x+=10
-= : x=x-10即 x-=10
*=:x=x*10即x*=10
/=:x=x/10即x/=10
%=: x=x%10即x/=10
>>=: x=x>>1即x>>=1
<<=: x=x<<1即x<<=1
&=: x=x&3即x&=3
| =: x=x | 1即x | =1
^=: x=x^1即 x^=1
6、單目操作符:
! 邏輯反操作
- 負值
+ 正值
& 取位址
sizeof 運算元的型別的長度(以位元組為單位)、取目標資料型別所佔空間大小
~ 對乙個數的二進位制按位取反
-- 前置、後置--(前置:先自行加減,再進行操作)
++ 前置、後置++(後置:先進行操作,再加減)
* 間接訪問操作符(解引⽤用操作符)、指標
(型別) 強制型別轉換、轉型別
#includevoid test1(int arr)
void test2(char ch)
int main()
; char ch[10] = ;
printf("%d\n", sizeof(arr));//(1)
printf("%d\n", sizeof(ch));//(3)
test1(arr);
test2(ch);
return 0;
}//問:
//(1)、(2)兩個地⽅方分別輸出多少? (1)輸出40(2)輸出4
//(3)、(4)兩個地⽅方分別輸出多少? (3)輸出10(4)輸出10
注:只有陣列在進行函式傳參時,會進行降維。一維陣列將為一級指標。任何函式只要傳參,必須形成臨時變數。
7、關係操作符:
注:賦值、x=10;相等、x==10
x = get_value();
if(x = 5)
//處理理事務
此處錯把判斷的==寫成了賦值的=,為避免此類錯誤,程式一般寫成下面格式
x = get_value();
if (5==x)
//處理理事務
8、邏輯操作符:
&& 邏輯與【1與1為真】【0與任何數都為假,不再執行該條程式後續算術】
|| 邏輯或【1或任何數都為真,不再執行該條程式後續算術】【0或0為假】
9、條件操作符:
exp1 ? exp2 : exp3
注釋:exp1為判斷,是真執行exp2,是假執行exp3。
10、逗號表示式:
exp1 ,exp2 ,exp3 ... expn ( 整個表示式的結果是最後乙個表示式的結果 )
11、下標引用、函式呼叫和結構成員:
(1) [ ] 運算元:乙個陣列名+乙個索引
(2) [ ] 函式呼叫操作符,接受乙個或者多個運算元:第乙個運算元是函式名,剩餘的運算元就是傳遞給函式的引數。
(3) 結構體訪問:<1> . 結構體.成員名(訪問結構體的某項元素)
<2> -> 結構體指標->成員名(用指標訪問)
c語言操作符 位操作符 移位操作符
1 按位操作符 1.1 按位 與 雙目運算子 僅當兩個運算元都為1時,結果為1,否則為0。參與運算的數以補碼方式出現。例 9 5 1 0000 1001 9的補碼 0000 0101 5的補碼 0000 0001 1的補碼 應用 a 通常將某些位清零或保留某些位。例如 將a的高八位清零,保留低八位,...
C語言 , 操作符
例如 define to string s s 將會使編譯器把以下命令 cout to string hello world endl 理解為cout hello world endl 例如 define concatenate x,y x y int xy 10 將會使編譯器把 cout conc...
C語言操作符
操作符的分類 1 算術操作符 2 移位操作符 3 位操作符 4 賦值操作符 5 單目操作符 6 關係操作符 7 邏輯操作符 8 條件操作符 9 逗號表示式 1 算術操作符 1 除了 操作符之外,不能用於浮點數。2 對於 操作符如果兩個運算元都為整數,執行整數除法。而只要有浮點數執行的就是浮點數除法。...