C語言 操作符 簡單總結
阿新 • • 發佈:2018-11-29
一,算術操作符
+ - * / %
都是運算基礎操作符,但要注意“%”只能用於整型。
二,移位操作符
移位操作符有兩種:>>(右移操作符)、<<(左移操作符)。
特別注意右移操作時分為兩種情況:
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、結構成員訪問操作符 . 和 -> :多見於結構體中。