1. 程式人生 > >C語言_操作符

C語言_操作符

       操作符可以分很多的類,例如:算術操作符 移位操作符 位操作符 賦值操作符 單目操作符 關係操作符 邏輯操作符 條件操作符 逗號表示式 下標引用,函式呼叫和結構成員.這篇部落格則是把每類操作符介紹一下.

算術操作符: +  -  *  /  %

常見的運算子號:加減乘除,常用於整數和浮點數

整數/整數還是等於整數

%,取餘,運算元必須是整數

移位操作符:<<  >>

左邊操作符<<  :  左邊拋棄,右邊補0

右移操作符>>:    右邊拋棄,左邊補0

  • 邏輯移位 左邊用0填充,右邊丟棄
  • 算術移位 左邊用原該值的符號位填充,右邊丟棄

位操作符:&  |  ^

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

 

賦值操作符:  =

可以給一個變數重新賦值

複合賦值符: +=   *=   /=   %=   >>=   <<=   &=   |=   ^=

經過運算,把值返回自身

i=i+1;
i+=1;
//兩者等價

 

單目操作符: !   -  +  &   sizeof   ~   -- -- ++   *  

! 邏輯反操作

- 負值

+ 正值

& 取地址

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

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

-- 前置、後置--

++ 前置、後置++

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

關係操作符:>  >=  <  <=  !=  ==

用於比較兩個數的大小

在程式碼中'=='號的意思才是相等,切不可與'='混用

邏輯操作符:||  &&

1&2----->0
1&&2---->1
1|2----->3
1||2---->1

 

條件操作符:  exp1?exp2:exp3

是一個三目操作符

a>b?a:b;
//如果a>b為真,則輸出a;為假,輸出b

 

逗號表示式:  ,

逗號表示式,從左向右依次執行。整個表示式的結果是最後一個表示式的結果

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

1,下標應用: 

char arr[10]={0};//定義一個十個元素的陣列arr,初始化都為0
for(int i=0;i<10;++i)
{
    printf("%d",arr[i]):
}                //列印陣列的每一個元素

2,函式呼叫:

#include <stdio.h>
void test1()
{
    printf("hehe\n");
}
void test2(const char *str)
{
    printf("%s\n", str);
}
int main()
{
    test1(); //實用()作為函式呼叫操作符。
    test2("hello world");//實用()作為函式呼叫操作符。
    return 0;
}

3,結構成員:

#include <stdio.h>
struct Stu
{
    char name[10];
    int age;
    char sex[5];
    double score;
};
void set_age1(struct Stu stu)
{
    stu.age = 18;
}
void set_age2(struct Stu* pStu)
{
    pStu->age = 18;//結構成員訪問
}
int main()
{
    struct Stu stu;
    struct Stu* pStu = &stu;//結構成員訪問
    stu.age = 20;//結構成員訪問
    set_age1(stu);
    pStu->age = 20;//結構成員訪問
    set_age2(pStu);
    return 0;
}

 

操作符的屬性:

複雜表示式的求值有三個影響的因素。

1. 操作符的優先順序

2. 操作符的結合性

3. 是否控制求值順序。 兩個相鄰的操作符先執行哪個?取決於他們的優先順序。如果兩者的優先順序相同,取決於他們的結合性。

     這些只是對函式操作符的大概概述,操作符是寫程式碼的基礎,還是需要大量的練習來實習.