總結——C語言操作符。


今天來總結一下常見的操作標識符。

一、算術操作符。

首先了解一下算術標識符都有哪些:+、-、*、/、%。

這些運算符都是最基礎的操作符,不做過多介紹。但要注意“%”只能用於整型。

二、移位操作符。

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

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

1、算術右移;

2、邏輯移位。

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

邏輯移位情況指的是:不需要考慮符號產生的問題,直接補0即可。

下面給出一段代碼舉例:

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

它的結果輸出是5。 這里需要特別注意,

1、移位操作符不能直接賦值改變變量。

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

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

右移操作相當於*2。

三、位操作符。

位操作符包括:&(按位與)、|(按位或)、^(按位異或)。

這三個操作符也非常簡單,在前面的交換兩數內容時有提到過用法。

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

四、賦值操作符。

賦值操作符在之前的程序代碼中經常出現,其操作符有:=、+=等。

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

a=x=y+1;

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

五、單目操作符。

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

需要注意的是:

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

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

3、++的前置和后置。舉例說明:

#include<stdio.h>
int main()//++后置
{
    int a = 10, b = 0;
    b = a++;
    printf("a=%d,b=%d\n", a, b);
    system("pause");
    return 0;
}

得到的結果:a=11,b=10。

#include<stdio.h>
int main()//++前置
{
    int a = 10, b = 0;
    b = ++a;
    printf("a=%d,b=%d\n", a, b);
    system("pause");
    return 0;
}

得到的結果:a=11,b=11。

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

舉例解釋:

#include<stdio.h>
int main()
{
    int a=1, b=2;
    int c = (a > b, a = b + 10, a, b = a + 1);
    printf("c=%d\n", c);
    system("pause");
    return 0;
}

逗號條件句的運算規則是從左往右依次運算,其結果是最后一個表達式的結果。
結果輸出是c=13。

八、其他操作符。

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

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

2、函數調用操作符 ( ) :這個操作符十分常見,不做過多解釋。

3、結構成員訪問操作符 . 和 -> :多見於結構體中。在后續的數據結構的復習中我們在詳細介紹。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM