溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

c語(yǔ)言操作符小結(jié)

發(fā)布時(shí)間:2020-08-03 16:07:46 來(lái)源:網(wǎng)絡(luò) 閱讀:570 作者:靈谷魚(yú) 欄目:編程語(yǔ)言
* 算數(shù)操作符(+,-,,/,%)

+,-,*,正常運(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í),編譯通過(guò)但運(yùn)行時(shí)會(huì)錯(cuò)。
"%":
1)該符號(hào)只針對(duì)int 整型有效。
2)當(dāng)符號(hào)右端為常數(shù)0或變量值為0時(shí),情況與"/"相同。

* 移位操作符(<<,>>)

ps:不要對(duì)負(fù)數(shù)進(jìn)行移位操作,這是未定義行為!
"<<"左移操作符:
1)按二進(jìn)制移位;
2)左移n位相當(dāng)于十進(jìn)制的*2的n次方;
3)左邊拋棄,右邊補(bǔ)0;
4)左移后原數(shù)值在沒(méi)有被賦值的情況下是不變的;

#include<stdio.h>
#include<stdlib.h>
 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é)果為:
c語(yǔ)言操作符小結(jié)
">>"右移操作符:
1)按二進(jìn)制移位;
2)右移n位相當(dāng)于十進(jìn)制的 / 2的n次方;
3)邏輯移位:左邊補(bǔ)0,右邊拋棄
算數(shù)移位:左邊補(bǔ)符號(hào)位,右邊拋棄
4)右移后原數(shù)值在沒(méi)有被賦值的情況下是不變的;(情況同上,不再做過(guò)多贅述)

* 位操作符(&,|,^,~)

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)烈不建議這么寫(xiě),可讀性差。
ps:此處補(bǔ)充一點(diǎn):賦值與初始化的區(qū)別
賦值:修改值
初始化:申請(qǐng)內(nèi)存空間,放值到內(nèi)存中

* 復(fù)合操作符(+= ,-= ,= ,/= ,%= ,>>= ,<<= ,&= ,|= ,^= )

復(fù)合運(yùn)算符與其他運(yùn)算符功能一樣,但可以使代碼更簡(jiǎn)潔

int x=10;
x=x+10;
x+=10;//復(fù)合賦值,效果與上式相同
* 單目操作符(!,- ,+ ,& ,sizeof ,~,--,++, ,(類型))

"!"邏輯反操作
"-"負(fù)值
"+"正值
"&"取地址
"sizeof"操作數(shù)的類型長(zhǎng)度(以字節(jié)為單位):
編譯過(guò)程中求值,運(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)位)

* 關(guān)系操作符(> , >= ,< ,<= ,!= ,== )

在前面已經(jīng)介紹了這些操作符,在此不再贅述,注意 = 和 == 書(shū)寫(xiě)時(shí)不要出錯(cuò)即可。

* 邏輯操作符(&& ,|| )

"&&":邏輯與
&&相當(dāng)于and
" || ":邏輯或
|| 相當(dāng)于 or
“短路求值”:
對(duì)于&&,若左側(cè)表達(dá)式值為假,那么右側(cè)不再求值,整個(gè)表達(dá)式結(jié)果為假
對(duì)于 || ,若左側(cè)表達(dá)式值為真,那么右側(cè)不再求值,整個(gè)表達(dá)式結(jié)果為真

* 條件操作符(表達(dá)式1 ?表達(dá)式2 :表達(dá)式3)

如果表達(dá)式1結(jié)果為真,則返回表達(dá)式2的值,否則返回表達(dá)式3的值
ps:優(yōu)先級(jí)最低!??!

* 逗號(hào)表達(dá)式(表達(dá)式1,表達(dá)式2,表達(dá)式3)

整個(gè)表達(dá)式的結(jié)果為最后一個(gè)表達(dá)式的結(jié)果。

* 下標(biāo)引用操作符( [ ] )

數(shù)組名+索引值,調(diào)用數(shù)組的值

* 隱式類型轉(zhuǎn)換

類似于char/short這樣的類型,參與算數(shù)運(yùn)算的時(shí)候會(huì)觸發(fā)整型提升,即隱式轉(zhuǎn)換為int 型再參與運(yùn)算!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI