1. 程式人生 > >C語言 操作符 簡單總結

C語言 操作符 簡單總結

一,算術操作符

  +     -     *    /      %

都是運算基礎操作符,但要注意“%”只能用於整型。

二,移位操作符

移位操作符有兩種:>>(右移操作符)、<<(左移操作符)。

特別注意右移操作時分為兩種情況:

1、算術右移。

算術右移情況指的是:二進位制數有正負之分,補位時要注意符號位;
2、邏輯移位。

邏輯移位情況指的是:不需要考慮符號產生的問題,直接補0即可。
3、移位操作符不能直接賦值改變變數。

如果需要改變變數需要這樣輸入:a>>=1;

4、左移操作相當於/2;

右移操作相當於*2。

三、位操作符。

&(按位與)   |(按位或)      ^(按位異或)

基礎操作符,需注意的是這三個操作符操作的必須是整數。

四,賦值操作符。

=   +=

注意在連續賦值時,應從右往左賦值,例如:

a=x=y+1;

輸出時a的值就應是y+1。

五、單目操作符。

!(邏輯反操作、非)、&(取地址符)、sizeof(求長度)、
~(按位取反)、++、--、*、(型別)等。

1、&是取地址符,%p列印地址。

2、sizeof()是操作符,不是函式!

3、++的前置和後置(前置先運算後使用,後置先使用在運算)。

4、*在這裡是間接訪問操作符,主要和指標相關。

5、(型別)為強制型別轉換操作符。
例:

#include<stdio.h>
int main()
{
    int num = 0;
    float f = 3.14;
    num = (int)f;
    printf("num=%d\n", num);
    system("pause");
    return 0;
}

輸出 num= 3

六、關係操作符。

==   、 >=  、 <=

主要出現在條件的比較判斷上,如:if語句、for迴圈等。

七、條件操作符。
1、exp1 ? exp2 : exp3 ;(三目操作符)
舉例:

int main()
{
    int a=10, b=0;
    if (a > 5)
        b = 3;
    else b = -3;
    printf("b=%d\n", b);
    system("pause");
    return 0;
}

當a=10時,通過if的條件判斷後,b的值為3。

當a=-10時,b的值為-3。

如果用上述語句即可表達成:

#include<stdio.h>
int main()
{
    int a=10, b=0;
    b = a > 5 ? 3 : -3;
    printf("b=%d\n", b);
    system("pause");
    return 0;
}

2、exp1 , exp2 , exp3

逗號條件句的運算規則是從左往右依次運算,其結果是最後一個表示式的結果。

八、其他操作符。

1、下標引用操作符 [ ] :多見於陣列。例如:arr[2]。

特別注意:arr[2]與*(arr+2)是等價的。

2、函式呼叫操作符 ( ) :這個操作符十分常見,不做過多解釋。

3、結構成員訪問操作符 . 和 -> :多見於結構體中。