+,-,*,正常運(yùn)算就好,但"/"和"%"較為特殊需要注意!
"/":
1)當(dāng)該符號(hào)兩端數(shù)據(jù)類型都為int時(shí),輸出類型為int 。若符號(hào)兩端數(shù)據(jù)類型不同時(shí),則按精度小的類型進(jìn)行計(jì)算。精度大的數(shù)被隱式類型轉(zhuǎn)換(編譯器自動(dòng)轉(zhuǎn)換)為精度小的類型。
2)當(dāng)除數(shù)為一個(gè)常數(shù)0時(shí),編譯器匯報(bào)編譯錯(cuò)誤。當(dāng)除數(shù)為一個(gè)一個(gè)變量,變量的值為0時(shí),編譯通過但運(yùn)行時(shí)會(huì)錯(cuò)。
"%":
1)該符號(hào)只針對(duì)int 整型有效。
2)當(dāng)符號(hào)右端為常數(shù)0或變量值為0時(shí),情況與"/"相同。
創(chuàng)新互聯(lián)建站于2013年成立,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目成都做網(wǎng)站、成都網(wǎng)站建設(shè)網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢(mèng)想脫穎而出為使命,1280元新化做網(wǎng)站,已為上家服務(wù),為新化各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話:18982081108
ps:不要對(duì)負(fù)數(shù)進(jìn)行移位操作,這是未定義行為!
"<<"左移操作符:
1)按二進(jìn)制移位;
2)左移n位相當(dāng)于十進(jìn)制的*2的n次方;
3)左邊拋棄,右邊補(bǔ)0;
4)左移后原數(shù)值在沒有被賦值的情況下是不變的;
#include
#include
int main() {
int num = 10;
printf("%d\n",num<<1 );
printf("%d\n", num);
printf("%d\n", num=num<<1);
system("pause");
return 0;
}
結(jié)果為:
">>"右移操作符:
1)按二進(jìn)制移位;
2)右移n位相當(dāng)于十進(jìn)制的 / 2的n次方;
3)邏輯移位:左邊補(bǔ)0,右邊拋棄
算數(shù)移位:左邊補(bǔ)符號(hào)位,右邊拋棄
4)右移后原數(shù)值在沒有被賦值的情況下是不變的;(情況同上,不再做過多贅述)
ps:按二進(jìn)制位操作,操作數(shù)必須為整數(shù)
"&":
全1為1,否則為0
"|":
全0為0,否則為1
"^":
相同為0,相異為1
"~":
0變1,1變0
修改變量的值,可以連續(xù)連續(xù)賦值(例:a=x=y+1),但強(qiáng)烈不建議這么寫,可讀性差。
ps:此處補(bǔ)充一點(diǎn):賦值與初始化的區(qū)別
賦值:修改值
初始化:申請(qǐng)內(nèi)存空間,放值到內(nèi)存中
復(fù)合運(yùn)算符與其他運(yùn)算符功能一樣,但可以使代碼更簡(jiǎn)潔
int x=10;
x=x+10;
x+=10;//復(fù)合賦值,效果與上式相同
"!"邏輯反操作
"-"負(fù)值
"+"正值
"&"取地址
"sizeof"操作數(shù)的類型長(zhǎng)度(以字節(jié)為單位):
編譯過程中求值,運(yùn)行時(shí)才申請(qǐng)內(nèi)存
"~"對(duì)一個(gè)數(shù)二進(jìn)制按位取反
"--"前置,后置 --
"++"前置,后置++:
前置后置的區(qū)別:
a)不取表達(dá)式的值,等價(jià)
b)取表達(dá)式的值:
前置,返回自增(自減)后的值;
后置,返回自增(自減)前的值
" * "解引用操作符
"(類型)"強(qiáng)制類型轉(zhuǎn)換:
此處會(huì)發(fā)生“截?cái)唷爆F(xiàn)象,即把一個(gè)占字節(jié)數(shù)多的變量賦值給一個(gè)占字節(jié)數(shù)少的變量,會(huì)把高位截?cái)?。把一個(gè)占字節(jié)少的變量賦值給一個(gè)占字節(jié)數(shù)多的變量,高位會(huì)進(jìn)行補(bǔ)位(補(bǔ)符號(hào)位)
在前面已經(jīng)介紹了這些操作符,在此不再贅述,注意 = 和 == 書寫時(shí)不要出錯(cuò)即可。
"&&":邏輯與
&&相當(dāng)于and
" || ":邏輯或
|| 相當(dāng)于 or
“短路求值”:
對(duì)于&&,若左側(cè)表達(dá)式值為假,那么右側(cè)不再求值,整個(gè)表達(dá)式結(jié)果為假
對(duì)于 || ,若左側(cè)表達(dá)式值為真,那么右側(cè)不再求值,整個(gè)表達(dá)式結(jié)果為真
如果表達(dá)式1結(jié)果為真,則返回表達(dá)式2的值,否則返回表達(dá)式3的值
ps:優(yōu)先級(jí)最低!??!
整個(gè)表達(dá)式的結(jié)果為最后一個(gè)表達(dá)式的結(jié)果。
數(shù)組名+索引值,調(diào)用數(shù)組的值
類似于char/short這樣的類型,參與算數(shù)運(yùn)算的時(shí)候會(huì)觸發(fā)整型提升,即隱式轉(zhuǎn)換為int 型再參與運(yùn)算!