C語言操作符

2021-08-18 06:37:09 字數 2618 閱讀 6501

1、算術操作符:

+  -   *    /   %(加、減、乘、除,取餘)

注意:(1)%操作符的兩個運算元必須是整數。

(2)/ 分母不能為 0。

2、移位操作符:

(1)<< 左移操作符:左邊位元位移出不要,右邊空出的位元位加 0。

(2)>> 右移操作符:<1>邏輯移位:左邊用0填充,右邊丟棄。

<2>算數移位:左邊用原該值的符號位填充,右邊丟棄。(無符號數:右移加0;有符號數:正數加0,負數加符號位。)

【num>>1:num右移一位,但並不改變原始資料,因為它沒被賦值。】(不能左右移負數字)

3、位操作符:(運算元必須是整數)

&:按位與(1與1是1,  0與任何數都是0)

| :按位或(只有兩個0或才是0)

^:按位異或(異為真同為假)(相同清零,任何數字和0異或為它本身)

//程式設計實現: 

//兩個int(32位)整數m和n的二進位制表達中,有多少個位(bit)不同?

//輸入例子 :

//1999 2299

//輸出例子 : 7

#include#include#pragma warning(disable:4996)

int main()

; for (i = 0; i <32; i++)//將整數化為二進位制數 }

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

system("pause");

return 0;

}

4、賦值操作符:

可重新給變數賦值。

int weight = 120;//初始化

weight = 80;//賦值

5、復合賦值符:

+=:x=x+10即 x+=10

-=  : x=x-10即  x-=10

*=:x=x*10即x*=10

/=:x=x/10即x/=10

%=:  x=x%10即x/=10

>>=: x=x>>1即x>>=1

<<=: x=x<<1即x<<=1

&=:  x=x&3即x&=3

| =:  x=x |  1即x | =1

^=: x=x^1即 x^=1

6、單目操作符:

!    邏輯反操作

-    負值

+    正值

&    取位址

sizeof    運算元的型別的長度(以位元組為單位)、取目標資料型別所佔空間大小

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

--    前置、後置--(前置:先自行加減,再進行操作)

++    前置、後置++(後置:先進行操作,再加減)

*    間接訪問操作符(解引⽤用操作符)、指標

(型別)    強制型別轉換、轉型別

#includevoid test1(int arr)

void test2(char ch)

int main()

; char ch[10] = ;

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

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

test1(arr);

test2(ch);

return 0;

}//問:

//(1)、(2)兩個地⽅方分別輸出多少? (1)輸出40(2)輸出4

//(3)、(4)兩個地⽅方分別輸出多少? (3)輸出10(4)輸出10

注:只有陣列在進行函式傳參時,會進行降維。一維陣列將為一級指標。任何函式只要傳參,必須形成臨時變數。

7、關係操作符:

:賦值、x=10;相等、x==10

x = get_value();

if(x = 5)

//處理理事務

此處錯把判斷的==寫成了賦值的=,為避免此類錯誤,程式一般寫成下面格式

x = get_value();

if (5==x)

//處理理事務

8、邏輯操作符:

&&  邏輯與【1與1為真】【0與任何數都為假,不再執行該條程式後續算術】

||      邏輯或【1或任何數都為真,不再執行該條程式後續算術】【0或0為假】

9、條件操作符:

exp1 ? exp2 : exp3

注釋:exp1為判斷,是真執行exp2,是假執行exp3。

10、逗號表示式:

exp1 ,exp2 ,exp3 ... expn  ( 整個表示式的結果是最後乙個表示式的結果 )

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

(1) [ ]  運算元:乙個陣列名+乙個索引

(2) [ ]  函式呼叫操作符,接受乙個或者多個運算元:第乙個運算元是函式名,剩餘的運算元就是傳遞給函式的引數。

(3) 結構體訪問:<1>   .  結構體.成員名(訪問結構體的某項元素)

<2>  ->   結構體指標->成員名(用指標訪問)

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