前言
C語言一經出現就以其功能豐富,表達能力強,靈活方便,應用面廣等特點迅速在全世界普及和推廣,很多人都開始了學習C語言。H1628資訊網——每日最新資訊28at.com
想要學好C語言,就必須要去了解C語言中的各種操作符!H1628資訊網——每日最新資訊28at.com
H1628資訊網——每日最新資訊28at.com
一、操作符是什么?
操作符是一種運算符號,用于執行程序代碼運算,用來表示某種數據關系。H1628資訊網——每日最新資訊28at.com
H1628資訊網——每日最新資訊28at.com
二、操作符分類
【1】算數操作符
- +——兩個數相加
- -——一個數減另一個數
- *——兩個數相乘
- /——分子除以分母
- %——取模(取余),得到整除后的余數
- ++——自增運算符,整數值增加 1
- --——自減運算符,整數值減少 1
重點注意 /操作符 和 %操作符。H1628資訊網——每日最新資訊28at.com
1、除法操作符
H1628資訊網——每日最新資訊28at.com
兩個操作數都是整數的話,執行的是整數除法。如:10/2=5(整數)H1628資訊網——每日最新資訊28at.com
兩個操作數只要有一個浮點型的話,執行的是小數除法。如:10/3.0=3.333333(小數)H1628資訊網——每日最新資訊28at.com
2、取模操作符
操作數必須是整數,如果是浮點型,編譯器會報錯!H1628資訊網——每日最新資訊28at.com
【2】移位操作符
<<左移位操作符H1628資訊網——每日最新資訊28at.com
>>右移位操作符H1628資訊網——每日最新資訊28at.com
H1628資訊網——每日最新資訊28at.com
注意:H1628資訊網——每日最新資訊28at.com
H1628資訊網——每日最新資訊28at.com
- 移位操作符的操作數只能是整數。
- 移位操作符是對操作數的二進制位進行移位。
2.1、<<左移操作符
H1628資訊網——每日最新資訊28at.com
移動規則:左邊拋棄,右邊補0H1628資訊網——每日最新資訊28at.com
H1628資訊網——每日最新資訊28at.com
H1628資訊網——每日最新資訊28at.com
2.2、>>右移位操作符
H1628資訊網——每日最新資訊28at.com
移動規則:H1628資訊網——每日最新資訊28at.com
H1628資訊網——每日最新資訊28at.com
- 邏輯移位:左邊用0填充,右邊丟棄。
- 算術移位:左邊用原該值的符號移位,右邊丟棄。
警告對于移位操作符,不要移動負數位,這個是未定義的。H1628資訊網——每日最新資訊28at.com
如:H1628資訊網——每日最新資訊28at.com
H1628資訊網——每日最新資訊28at.com
H1628資訊網——每日最新資訊28at.com
int num = 10;num << -1;//錯誤做法num >> 1;//正確做法
【3】位操作符
位:指二進制位H1628資訊網——每日最新資訊28at.com
H1628資訊網——每日最新資訊28at.com
例如:H1628資訊網——每日最新資訊28at.com
00000000000000000000000000000011——3的補碼H1628資訊網——每日最新資訊28at.com
111111111111111111111111111111111011—— -5的補碼H1628資訊網——每日最新資訊28at.com
00000000000000000000000000000011——3 & -5 = 3H1628資訊網——每日最新資訊28at.com
H1628資訊網——每日最新資訊28at.com
規則:H1628資訊網——每日最新資訊28at.com
H1628資訊網——每日最新資訊28at.com
- 按位與:對應的二進制位有0,則為0
- 按位或:對應的二進制位有1,則為1
- 按位異或:對應的二進制位,相同位0,相異為1
練習:H1628資訊網——每日最新資訊28at.com
H1628資訊網——每日最新資訊28at.com
H1628資訊網——每日最新資訊28at.com
H1628資訊網——每日最新資訊28at.com
H1628資訊網——每日最新資訊28at.com
先分別將1和2的二進制位寫出來,再進行分析,并不難理解。H1628資訊網——每日最新資訊28at.com
【4】賦值操作符
符號:=H1628資訊網——每日最新資訊28at.com
H1628資訊網——每日最新資訊28at.com
簡單的賦值操作符,把右邊操作符的值賦給左邊操作數。H1628資訊網——每日最新資訊28at.com
H1628資訊網——每日最新資訊28at.com
注意:“ = ” 是賦值,“ == ” 才是判斷兩個數是否相等,不能混用。H1628資訊網——每日最新資訊28at.com
H1628資訊網——每日最新資訊28at.com
注意:左邊的?操作數必須是變量,不能是常量或表達式。H1628資訊網——每日最新資訊28at.com
H1628資訊網——每日最新資訊28at.com
- 此外,= 還會與算數操作符 “ + ”,“ - ”,“ * ”,“ / ” 結合使用。
例如:“ += ”,“ -= ”,“ *= ”,“ /= ”H1628資訊網——每日最新資訊28at.com
【5】單目操作符
- !——邏輯反操作
- -——負值
- +——正值
- &——取地址
- sizeof——計算操作數的類型長度(以字節為單位)
- ~——對一個數的二進制按位取反
- - -——前置、后置- -
- ++——前置、后置++
- *——間接訪問操作符(解引用操作符)
- (類型)——強制類型轉換
注意sizeof與數組的關系H1628資訊網——每日最新資訊28at.com
H1628資訊網——每日最新資訊28at.com
H1628資訊網——每日最新資訊28at.com
H1628資訊網——每日最新資訊28at.com
【6】關系操作符
- <——小于
- <=——小于等于
- >——大于
- >=——大于等于
- ==——等于
- !=——不等于
注意在編程的過程中==和=不要寫錯。H1628資訊網——每日最新資訊28at.com
H1628資訊網——每日最新資訊28at.com
【7】邏輯操作符
- &&——與,如果兩個操作數均為非0,則表達式的值為1,反之為0
- ||——或,如果兩個操作數至少有一個為非0,則表達式的值為1,反之為0
- !——非,如果兩個操作數均為非0,則表達式的值為,反之亦反
在C語言中,0代表假(False),1代表真(True)H1628資訊網——每日最新資訊28at.com
H1628資訊網——每日最新資訊28at.com
所以也可以這樣理解:H1628資訊網——每日最新資訊28at.com
&&是“與”的意思,需要兩端的表達式的值都為true,該式的值才為true。H1628資訊網——每日最新資訊28at.com
||是“或”的意思,兩端的表達式的值只要有一端為true,該式的值就為true。!是“非”的意思,將該式的真值換成相反的真值,即false和true互換。H1628資訊網——每日最新資訊28at.com
H1628資訊網——每日最新資訊28at.com
H1628資訊網——每日最新資訊28at.com
H1628資訊網——每日最新資訊28at.com
【8】條件操作符(三目操作符)
三目運算符也叫條件運算符,是由一個問號和一個冒號組成。H1628資訊網——每日最新資訊28at.com
H1628資訊網——每日最新資訊28at.com
H1628資訊網——每日最新資訊28at.com
H1628資訊網——每日最新資訊28at.com
H1628資訊網——每日最新資訊28at.com
程序的流程是:H1628資訊網——每日最新資訊28at.com
H1628資訊網——每日最新資訊28at.com
先執行表達式1,如果表達式1的結果如果為真,那么執行表達式2,并且這個整體的運算式的結果是表達式2的結果;H1628資訊網——每日最新資訊28at.com
如果表達式1的結果如果為假,執行表達式3,運算式的結果是表達式3的結果。H1628資訊網——每日最新資訊28at.com
【9】逗號操作符
看到標題,我們可能會感到好奇,怎么逗號也會是運算符?H1628資訊網——每日最新資訊28at.com
其實一開始呀,我也沒注意到這點,直到我做到了一道題,才發現了這個有趣的知識點。H1628資訊網——每日最新資訊28at.com
H1628資訊網——每日最新資訊28at.com
思考題: 下面的y都分別為什么值?H1628資訊網——每日最新資訊28at.com
int y=3;int y=(1,2,3);int y=(x=1+2),(3+4);int y=((x=3+4),(1+2));H1628資訊網——每日最新資訊28at.com
H1628資訊網——每日最新資訊28at.com
對,y都為 3H1628資訊網——每日最新資訊28at.com
第二個y,因為y的值是整條語句的值,而整條語句的值是最后那個逗號后面的值。H1628資訊網——每日最新資訊28at.com
第三個y,我們可以看成為 y=x=1+2;這樣就可以很清楚地看到,y就是等于 3H1628資訊網——每日最新資訊28at.com
第四個y,跟第二個一樣,是最后那個逗號后面的值,即,y=(1+2)。H1628資訊網——每日最新資訊28at.com
H1628資訊網——每日最新資訊28at.com
小歸納:一條語句理論上是有?返回值的,如果語句里面有多個逗號,則以最后一個逗號后面的表達式值為返回值!H1628資訊網——每日最新資訊28at.com
H1628資訊網——每日最新資訊28at.com
【10】下標引用、函數調用和結構成員
1、[ ] 下標引用操作符`
H1628資訊網——每日最新資訊28at.com
操作數:一個數組名 + 一個索引值H1628資訊網——每日最新資訊28at.com
H1628資訊網——每日最新資訊28at.com
H1628資訊網——每日最新資訊28at.com
int arr[10];//創建數組arr[9]=10;//使用下標引用操作符//[ ]的兩個操作數是arr和9
2、( )函數調用操作符
接受一個或多個操作數:第一個操作數是函數名,剩余的操作數就是傳遞給函數的參數。H1628資訊網——每日最新資訊28at.com
H1628資訊網——每日最新資訊28at.com
3、訪問一個結構的成員
H1628資訊網——每日最新資訊28at.com
三、運算符優先級(匯總)
C語言運算符優先級 詳細列表
H1628資訊網——每日最新資訊28at.com
H1628資訊網——每日最新資訊28at.com
H1628資訊網——每日最新資訊28at.com
本文鏈接:http://www.tebozhan.com/showinfo-26-15332-0.html【C語言】操作符有幾種?你真的知道嗎?
聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com
上一篇: Spring的BeanFactory與FactoryBean的區別,你現在懂了嗎?
下一篇: 優雅的使用String字符串處理各種類型轉換