首頁 > 軟體

C語言超全面覆蓋操作符知識點

2022-06-24 18:03:02

算術操作符

主要是 (+ - * / %) 五種算數操作符。

1、除了 % 操作符之外,其他的幾個操作符可以作用於整數和浮點數。

2、對於 / 操作符如果兩個運算元都為整數,執行整數除法。而只要有浮點數執行的就是浮點數除 法。

3、% 操作符的兩個運算元必須為整數。返回的是整除之後的餘數。

當除數為小數時,int型別只會擷取整數部分。

移位元運算符

<< 左移操作符

>> 右移操作符

左移操作符 移位規則: 左邊拋棄、右邊補0

右移操作符 移位規則:

首先右移運算分兩種:

1. 邏輯移位 左邊用0填充,右邊丟棄

2. 算術移位 左邊用原該值的符號位填充,右邊丟棄

警告⚠ :對於移位運運算元,不要移動負數位,這個是標準未定義的。

例如:

int num = 10;

num>>-1;//error

位元運算符

& 按位元與:1 1為1;1 0為0;0 0為0。

| 按位元或 :1 1為1;1 0為1;0 0為0。

^ 按位元互斥或 :1 1為0;1 0為1;0 0為0。

注:他們的運算元必須是整數。

練習一下:

#include <stdio.h>
int main(){
 int num1 = 1;
 int num2 = 2;
 num1 & num2;
 num1 | num2;
 num1 ^ num2;
 return 0; 
}

不能建立臨時變數(第三個變數),實現兩個數的交換。

#include <stdio.h>
int main(){
 int a = 10;
 int b = 20;
 a = a^b;
 b = a^b;
 a = a^b;
 printf("a = %d b = %dn", a, b);
 return 0; 
}

賦值操作符

"="

注意:這是賦值操作符,並不是等於。c語言中的等於是"=="。

複合賦值符

+= -= *= /= %= >>= <<= &= |= ^=

符合賦值操作符與其他運運算元一樣的道理。這樣寫更加簡潔

單目操作符

! 邏輯反操作

- 負值

+ 正值

& 取地址

* 間接存取操作符(解除參照操作符)

sizeof 運算元的型別長度(以位元組為單位)

~ 對一個數的二進位制按位元取反

-- 前置、後置--

++ 前置、後置++

//++和--運運算元
//前置++和--
 //前置++和--:
 #include <stdio.h>
 int main()
 {
 int a = 10;
 int x = ++a;
 //先對a進行自增,然後對使用a,也就是表示式的值是a自增之後的值。x為11。
 int y = --a;
 //先對a進行自減,然後對使用a,也就是表示式的值是a自減之後的值。y為10;
 return 0;
 }
 //後置++和--
 #include <stdio.h>
 int main()
 {
 int a = 10;
 int x = a++;
 //先對a先使用,再增加,這樣x的值是10;之後a變成11;
 int y = a--;
 //先對a先使用,再自減,這樣y的值是11;之後a變成10;
 return 0;
 }

(型別) 強制型別轉換

強制型別轉換是通過型別轉換運算來實現的。其一般形式為:(型別說明符)(表示式)其功能是把表示式的運算結果強制轉換成型別說明符所表示的型別。自動轉換是在源型別和目標型別相容以及目標型別廣於源型別時發生一個型別到另一類的轉換。例如: (float) a 把a轉換為浮點型,(int)(x+y) 把x+y的結果轉換為整型。

關係操作符

>

>=

<

<=

!= 用於測試“不相等”

== 用於測試“相等”

這些關係運算子比較簡單,但是我們要注意一些運運算元使用時候的陷阱

警告: 在程式設計的過程中 == 和 = 不小心寫錯,導致的錯誤。

邏輯操作符

&& 邏輯與 || 邏輯或

區分 邏輯與 和 按位元與 區分 邏輯或 和 按位元或

#include <stdio.h>
int main(){
    int i = 0,a=0,b=2,c =3,d=4;
    i = a++ && ++b && d++;
    //i = a++||++b||d++;
    printf("a = %dn b = %dn c = %dnd = %dn", a, b, c, d);
    return 0; 
}

條件操作符

exp1 ? exp2 : exp3

到此這篇關於C語言超全面覆蓋操作符知識點的文章就介紹到這了,更多相關C語言操作符內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com