溫馨提示×

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

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

c語言中的逗號(hào)運(yùn)算符用法

發(fā)布時(shí)間:2020-07-02 13:39:25 來源:億速云 閱讀:435 作者:元一 欄目:編程語言

這篇文章運(yùn)用簡(jiǎn)單易懂的例子給大家介紹c語言中的逗號(hào)運(yùn)算符用法,代碼非常詳細(xì),感興趣的小伙伴們可以參考借鑒,希望對(duì)大家能有所幫助。

在C語言中,多個(gè)表達(dá)式可以用逗號(hào)分開,其中用逗號(hào)分開的表達(dá)式的值分別結(jié)算,但整個(gè)表達(dá)式的值是最后一個(gè)表達(dá)式的值。

例子:

int a1,a2,b=2,c=7,d=5; // 第1行

a1=(++b,c--,d+3); // 第2行

a2=++b,c--,d+3; //第3行

對(duì)于給a1賦值的代碼,有三個(gè)表達(dá)式,用逗號(hào)分開,所以最終的值應(yīng)該是最后一個(gè)表達(dá)式的值,也就是(d+3)的值,為8,所以a1的值為8。

對(duì)于給a2賦值的代碼,也是有三個(gè)表達(dá)式,這時(shí)的三個(gè)表達(dá)式為a2=++b、c--、d+3,(這是因?yàn)橘x值運(yùn)算符比逗號(hào)運(yùn)算符優(yōu)先級(jí)高)雖然最終表達(dá)式的值雖然也為8,但b=4(第2行代碼運(yùn)算完時(shí),b=3,即第3行代碼運(yùn)行時(shí),b的值為4),所以a2=4。

注意:逗號(hào)運(yùn)算的結(jié)合性是從左至右,完畢之后整個(gè)表達(dá)式的值是最后一個(gè)表達(dá)式的值。

例子:int a[2],x=2,y=5;

a[0]=(x+3,y++,x++);那么最終結(jié)果是:a[0]=2 x=3 y=6;

為何a[0]=2:因?yàn)?x++)是運(yùn)算之后再自加

a[1]=(x++,x+3,x+7);那么最終結(jié)果是:a[1]=10 ,x=3

再來一個(gè)關(guān)于結(jié)合性的例子:

int i=24;

int n = (i++,i++,i++,i++); // n == 27

因?yàn)槎禾?hào)運(yùn)算符的結(jié)合性是自左向右,所以四個(gè)i++會(huì)依次運(yùn)行,但是最后一個(gè)i++在賦值之后才進(jìn)行運(yùn)算,所以最終返回27。

運(yùn)算符優(yōu)先級(jí):

1、優(yōu)先級(jí)從上到下依次遞減,最上面具有最高的優(yōu)先級(jí),逗號(hào)操作符具有最低的優(yōu)先級(jí)。

2、相同優(yōu)先級(jí)中,按結(jié)合順序計(jì)算。大多數(shù)運(yùn)算是從左至右計(jì)算,只有三個(gè)優(yōu)先級(jí)是從右至左結(jié)合的,它們是單目運(yùn)算符、條件運(yùn)算符、賦值運(yùn)算符。

3、基本的優(yōu)先級(jí)需要記住:指針最優(yōu),單目運(yùn)算優(yōu)于雙目運(yùn)算。如正負(fù)號(hào)。先算術(shù)運(yùn)算,后移位運(yùn)算,最后位運(yùn)算。請(qǐng)?zhí)貏e注意:1 << 3 + 2 && 7等價(jià)于 (1 << (3 + 2))&&7.邏輯運(yùn)算最后計(jì)算。

關(guān)于c語言中的逗號(hào)運(yùn)算符用法就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。

向AI問一下細(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