C語言 操作符

2021-07-29 13:40:31 字數 1570 閱讀 1485

c語言的操作符有很多種,也很重要,可分為以下幾類:

1.算術操作符:+ - * / %

除法中:倆個整形相除結果也等於整形;含有浮點型的除法中結果也為浮點型。

% :模運算只能用於整數,因為有小數點時,為浮點數運算,浮點數除法中不存在小數。

int main()  

2.移位操作符:>>    <<

左移<< 左邊直接拋棄,右邊補0  001 << 2 = 100 

右移》 算術右移:右邊拋棄,左邊補符號位;邏輯右移: 直接補0;

【注意】移位不能用於負數。

乙個整數右移相當於這個整數除2;

num>>1==num/2 所以除2的時候可以用右移代替;

0x40000000 << 1 = -2的31次方

左移n位,相當於num乘以2的n次方。

3.位操作符:& | ^

位操作符在c中很少出現,但很重要;

& 按位與 1&0=0  1&1=1;

特點:某一位與上1為它本身,所以&可以用來取出二進位制中的某位;

| 按位或   1|0=1

^ 按位異或  1^0=1 1^1=0 0^0=0

特點 設:a^b==c; c^b==a; c^a==b;  三個數直接異或存在自反性(自己理解)

3.賦值操作符:=

復合賦值操作符: +=  -=   *=   /=  >=   <=   ==   !=

num+=1;   num=num+1;

num-=1;   num=num-1;

4.單目操作符: ! -  +  &  sizeof  ~ --  ++  *  (型別)

!:邏輯反操作,真變為假,假變為真;

int num = 20

int arr[10] = ;

printf("%p\n",&num);

printf("%p\n",arr);//arr表示陣列首元素的位址

printf("%p\n"arr[0]);//首元素位址

printf("%p\n",&arr);//這裡arr表示整個陣列,對整個陣列取位址為首元素位址

sizeof:計算長度

sizeof (int);

sizeof  (num);

sizeof num;以上3種表示方法都可以,但不能表示為

siozeof int;

~ :二進位制按位取反

* :解引用

int *p = #

*p = 20;

(型別):強制型別轉換

5.關係操作符: >   <    >=   <=    ==   !=

==  :等於 注意與賦值=區分

防止寫錯可以寫為

if(5==i)

6.邏輯操作符: && ||

&& :邏輯與  1&&1為真  當&&左邊為0時,右邊將不再計算

||  :邏輯或   1||0為真    當||左邊為1時,右邊將不再計算

7.條件操作符: exp?exp1:exp2

如果條件exp成立返回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 對於 操作符如果兩個運算元都為整數,執行整數除法。而只要有浮點數執行的就是浮點數除法。...