C語言操作符

2021-08-10 19:16:17 字數 3138 閱讀 2214

指令系統的每一條指令都有乙個操作符,它表示該指令應進行什麼性質的操作。

1. 算數操作符

+    加法操作符

-    減法操作符

*    乘法操作符

/    整除操作符             5/2=2

%    求餘操作符             5%2=1

注:

i.      除求餘操作符(%)外,其他的幾個操作符都可以用於整數和浮點數。

ii.    對於整除操作符(/),若兩個操作符都為整數,則執行整數除法;若其中有乙個為浮點數,則執行浮點數除法。

iii.   求餘操作符(%)的兩個操作符必須為整數,返回的是整除之後的餘數。

2. 移位操作符

<<    左移操作符

>>    右移操作符

移位規則:

(1)<<    左移操作符           左邊捨棄、右邊補0

int n = 10;  //10的二進位制為      00001010

n << 1; //10左移一位後變為 0 00010100 (後面補0,前面捨去)

注:實際上

n在未賦值的情況下,自身的值不變

(2)  >>    右移操作符

1)邏輯移位

左邊補0、右邊捨棄

int n = -1;       // -1的二進位制為    11111111

n >> 1; // 01111111 1

// (左邊補0,右邊捨去)

2)算數移位

左邊補原數符號位、右邊捨棄

int n = -1;       // -1的二進位制為    11111111

n >> 1; // 11111111 1

// (左邊補符號位,右邊捨去)

3. 位操作符

&   按位與       同真為真              3^      00000011

|    按位或      一真為真              5      00000101

^    按位異或     相同為0,相異為1    =       00000110

注:按「位」中的位指二進位制的位

4. 賦值操作符

+=    -=    *=    /=   %=          a=a+1等價於a+=1

5. 單目操作符

!         邏輯反操作

-          負值

+         正值

&        取位址

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

注:

i.    

int a = 10;

int c = 4;

printf("%d\n", sizeof(a)); //其中a的括號可以省

printf("%d\n", sizeof(int)); //其中int的括號不能省

printf("%d\n", sizeof(a = c + 1)); //其中sizeof內部的表示式不參與運算

//其中後三句等價

ii.    sizeof

內部放陣列名,則陣列名表示整個陣列,單位是位元組

int arr[10];

printf("%d\n", sizeof(arr));

iii.   

除此之外都是表示陣列首元素

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

printf("%d\n", ~0);         //其中~0表示1
--        前置、後置—

int a = 10;

int x = --a; //前置—,先—後使用

int y = a--; //後置--,先使用後--

printf("%d\n", x, y); //輸出x = 9,y = 10

++       前置、後置++

*         間接訪問操作符(解引用操作符)

(型別)    強制型別轉換

6. 關係操作符

!=   用於測試「不相等」

==   用於測試「相等」

7. 邏輯操作符

&&    邏輯與

||   邏輯或

注:

i.      邏輯與(&&)與按位與(&)  1&2=0

1&&2=1

邏輯或(||)與按位或(|)   1|2=3

1||2=1

ii.    邏輯與(&&)邏輯或(||)都具有短路特性,即當前乙個邏輯表示式可以決定整個表示式的計算結果時,後乙個邏輯表示式根本就不會計算

8. 條件操作符

表示式1?表示式2:表示式3

注:

i.      若表示式1為真則執行表示式2

ii.    若表示式1為假則執行表示式3

9. 逗號表示式

表示式1,表示式2,表示式3,…,表示式n

注:

i.      逗號表示式,從左向右依次執行。

ii.    整個表示式的結果是最後乙個表示式的結果。

10.    下標引用、函式呼叫和結構成員

下標引用操作符

()    函式呼叫操作符

注:接受乙個或者多個運算元:第乙個運算元是函式名,剩餘的運算元就是傳遞給函式的引數。

訪問乙個結構的成員

. 結構體.成員名

-> 結構體指標->成員名

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