各種操作符總結C語言

2021-09-07 04:40:39 字數 2917 閱讀 9773

操作符

1.算數運算子

+   -   *  /   %
注:1) / 運算中,被除數不能為零

2) % 運算中,浮點數不能用於取模

2.移位操作符

<<     左移操作符    左邊拋棄,右邊補零(左移一位相當於乘以2)

>> 右移操作符 ①算數右移:如果最高位為1,則補1,否則補0

②邏輯右移:高位補零,右邊拋棄(相當於除以2)

注:負數不能進行移位操作符。
3.位操作符

|        按位或 (二進位制每位對應去或)    

& 按位與

~ 按位取反

^ 按位取異或

1)把乙個整數的二進位制中的某一位設定為1或0

int num = 10;

num = num | (1 << 4);//把第四位設定為1 0000 1010 --> 0001 1010

num = num & ~ (1 << 4);//把第四位設定為0

2)求乙個整數儲存在記憶體中的二進位制中1的個數

法一

int num = -1;

int count = 0;

int i;

for(i = 0; i < 32; i++) }

printf("%d\n", count);

法二

int num = 15;

int count = 0;

while(num)

printf("%d\n", count);

4.賦值操作符

+=  -=  /=   *=  %=  |=  &=  ~=   先運算後賦值
i++ 後置++相當於,int t = i; i += 1; return t; 多占用記憶體

++i 前置++相當於,i += 1; return i; 不用另開闢記憶體儲存變數, 多使用

5.單目運算子

!        邏輯取反   +   -       ++     --

& 取位址

~ 二進位制數按位取反

* 解引用操作符

sizeof 運算元的型別長度(按位元組)

sizeof求長度對於陣列, 傳參使隱式轉為指標和型別的關係:

void test1(int* a)

void test2(char* ch)

int main()

; char ch[10];

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

//輸出為40,sizeof(a)求整型陣列的長度,4個位元組的10個元素

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

//輸出為10,sizeof(ch)求字元陣列的長度,1個位元組的10元素

test1(a);

//輸出為4,陣列傳參時,被隱式轉換為指向陣列首個元素的指標

test2(ch);

//不管int*還是char*指標型別長度都為4位元組

return 0;

}

6.關係操作符

<    >     <=    >=

== 判斷相等

!= 判斷不等

7.邏輯操作符

&&      //邏輯與    1 && 2   為真(1)

|| //邏輯或 1 || 2 為真(1)

對於&&來說,如果左側表示式為假,則後面表示式不在計算。

對於 || 來說,如果左側表示式為真,則右側表示式不在計算。

360面試真題

int i = 0, a = 0, b = 2, c = 3, d = 4;

//i = a++ && ++b && d++; //輸出為 a = 1, b = 2, d = 4

//a++先賦值後加,所以i第乙個數為假,邏輯表示式不在往後執行

i = a++ || ++b || d++; //輸出為 a = 1, b = 3, d = 4

//a++先賦值後加,所以i第乙個數為假,運算到第二個表示式++b為真,表示式不在執行

printf("a = %d, b = %d, c = %d, d = %d\n", a, b, c, d);

8.條件操作符

exp1 ? exp2 : exp3

//三目運算子可實現else if 的功能

舉例

(a > b) ? a : b

//相同功能**為

if(a > b)

else

9.逗號表示式

表示式1,表示式2,   ......  ,表示式n
逗號表示式的輸出為: 從左向右 ,最後乙個表示式

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

1) 陣列名 + [ ]下標引用 可呼叫陣列或陣列中的某個元素

2) 函式名 + ( )函式呼叫操作符 可呼叫函式

3).結構體.成員名

–>結構體–>成員名

結構體呼叫,使用舉例

struct stu

;void person1(struct stu stu)

void person2(struct stu* p)

int main()

C語言操作符總結

c語言操作符總結 1.算數操作符 有浮點數則為浮點除法 全為整形 2.移位操作符 所有的移位操作符都是二進位制移位 左移 效果 左邊拋棄右邊補0.右移 效果 1 符號位 算術移位 原該值的符號位 2 0 邏輯移位 警告 不要移動負數字 3.位操作符 按位與 按位或 按位異或 注意 全都為二進位制位操...

C語言 操作符總結

1.運算操作符 加 可作為正號 例 a b 4 減 可作為正號 例 a b 5 乘 例 a b 除 例 a b 注意 分母不能為零 取餘 運算操作符的使用方法,基本與數學上的使用一致 2.賦值操作符 例 a 2 可讀為將2賦給a 注意 從右向左進行運算 3.其他符賦值操作符 例 a 1 相當於 a ...

C語言操作符總結

1.操作符的兩個運算元必須為整數,返回的是整除後的餘數。2.對於 操作符,如果兩個運算元都是整數則執行整數除法,只要有浮點數就執行浮點數除法。左移操作符 右移操作符 左邊拋棄,右邊補0 右移分為兩種 1.邏輯移位 左邊用0補,右邊丟棄 2.算術移位 左邊用原來的符號位填充,右邊丟棄 符號位中0表示正...