操作符的分類:
算術操作符
移位操作符
位操作符
賦值操作符
單目操作符
關係操作符
邏輯操作符
條件操作符
逗號表示式
下標引用、函式呼叫和結構成員
+ - * / %
1.除了%操作符,其他的操作符都可以作用於整數和浮點數。
2.對於/操作符,如果兩個運算元都是整數,執行整數除法,如果有浮點數執行的就是浮點數除法。
3.%操作符的兩個運算元必須為整數,返回的數是整除後的餘數。
#include
#include
#pragma warning(disable:4996)
intmain()
此時的結果並不是我們想要的3.333333
將/後的3變為3.0即可得到3.333333(/任意一邊有浮點數,就執行浮點數的操作)
移位操作符
右移操作符》
左移操作符<<
左移操作符移位規則:
左邊拋棄,右邊補0
右移操作符 移位規則:
首先右移運算分兩種:
1.邏輯移位 左邊用0填充,右邊丟棄
2.算術移位 左邊用0填充,右邊丟棄
注意:對於移位運算子,不要移動負數字,這個是標準未定義的
int num =10;
num =-1
;//error
位操作符
& //按位與
| //按位或
^ //按位異或
& (按位與):兩個位元位上的數都為1時,結果為1;
| (按位或):兩個位元位上的數都為0時,結果為0;
^ (按位異或):兩個位元位上的數不相同,結果為1;
注:他們的運算元必須是整數
拓展:異或運算子的乙個常見應用------用於不建立臨時變數時交換兩個數的值
賦值操作符
賦值操作符在程式設計中如果遇到乙個不滿意的值,可以重新進行賦值
且賦值操作符可進行連續使用
int a =10;
int x =20;
int y =19;
a = x = y+3;
//連續賦值
復合賦值符
+=
-=*=
/=%=
<<=
>>=
&=|=
^=
! 邏輯反操作
-負值+正值
& 取位址
sizeof 運算元的型別長度(以位元組為單位)
~ 對乙個數的二進位制按位取反
– 前置、後置–
++ 前置、後置++
*間接訪問操作符(解引用操作符)
(型別) 強制型別轉換
注:++i 為先遞增 後使用
i++為先使用 後遞增
關係操作符
><
>=
<=
!= 用於測試不相等
== 用於測試相等
這些關係運算子比較簡單,但在使用時會有一些陷阱
如:在程式設計的過程中==和=混淆
&& 邏輯與
|| 邏輯或
區分邏輯與和按位與 區分邏輯或和按位或
1&2------------->0
1&&2----------->1
1|2-------------->3
1||2------------->1
&&(邏輯與):兩個都為真時為真1
|| (邏輯或):兩個都為假時為假0
前面語句成立,則後面語句不再執行
exp1?exp2:exp3
兩個數比較大小的**實現:
#include
intmain()
exp1,exp2,exp3,…expn
逗號表示式,都是用逗號隔開的多個表示式。逗號表示式,從左至右依次執行。整個表示式的結果是最後乙個表示式的結果
1.[ ]下標引用操作符
運算元:乙個陣列名+乙個索引值
int a[10]
;//建立陣列運算元是aa[9
]=10;
//使用下標引用操作符運算元是9
2.()函式呼叫操作符 接受乙個或者多個運算元:第乙個運算元是函式名,剩餘的運算元就是傳遞給函式的引數
3.訪問乙個結構的成員
.結構體.成員
->結構體指標->成員名
#include
struct stu
;void
set_age1
(struct stu stu)
void
set_age2
(struct stu* pstu)
intmain()
表示式求值的順序一部分是由操作符的優先順序和結合性決定
同樣,有些表示式的運算元在求值的過程中可能需要轉換為其他型別
c的整型算術運算總是至少以預設整型的精度來進行的
為獲得這個精度,表示式中的字元和短整型運算元在使用之前被轉換為普通整型
如果某個操作符的各個運算元屬於不同的型別,那麼除非其中乙個運算元的轉換為另乙個運算元的型別,否則操作就無法進行,下面的層次體系稱為尋常算術轉換
long double
double
float
unsigned long int
long int
unsigned int
int如果某個運算元的型別在上面這個列表中排名較低,那麼首先要轉換為另乙個運算元的型別後執行運算
注:在算術轉化過程中,要注意合理性問題,不然就會出現潛在的問題
複雜表示式的求值有三個影響的因素
1.操作符的優先順序
2.操作符的結合性
3.是否控制求值順序
兩個相鄰的操作符執行順序取決於他們的優先順序,如果兩者的優先順序相同取決於他們的結合性
C語言操作符和表示式
5 2 2 5 2 1注 1.除 操作符之外,其他的幾個操作符均可作用與整數和浮點數,但需要注意結果列印的格式和精度缺失。2.對於 操作符,如果兩個數都為整數,執行整數除法,而只要有浮點數執行的就是浮點數除法。3.操作符的兩個運算元必須為整數。返回的是整除之後的餘數。左移操作符 移位規則 左邊拋棄 ...
C語言 操作符和表示式
算術操作符 c提供了所有常用的算術操作符 除了 操作符,其餘的操作符是既適用於浮點型別又適用於整數型別 為取模操作符,接受兩個整型運算元,把左運算元除以右運算元,但其返回的值是餘數而不是商。移位操作符 二進位制 0和1 移位操作只是簡單地把乙個值的位向左或向右移動。左移位中,值最左邊的幾位被丟棄,右...
C語言 操作符和表示式
加法操作符 減法操作符 乘法操作符 除法操作符 取餘操作符 注意 右移操作符 左移操作符 注意 原值 0000 1011 11 1 0000 0101 5 11 2 1 2 0000 0010 2 11 2 2原值 0000 1011 11 1 0001 0110 22 11 2 1 2 0010 ...