c語言中逗號運算符和逗號表達式(轉(zhuǎn)載)

http://www.cnblogs.com/hnrainll/archive/2011/08/03/2126660.html


c語言中逗號運算符和逗號表達式

C語言提供一種特殊的運算符——逗號運算符消恍。用它將兩個表達式連接起來岂昭。如:

3+5,6+8

稱為逗號表達式狠怨,又稱為“順序求值運算符”约啊。逗號表達式的一般形式為

表達式1,表達式2

逗號表達式的求解過程是:先求解表達式1佣赖,再求解表達式2恰矩。整個逗號表達式的值是表達式2的值。例如憎蛤,上面的逗號表達式“3+5外傅,6+8”的值為14。又如,逗號表達式

a=3*5萎胰,a*4

對此表達式的求解碾盟,讀者可能會有兩種不同的理解:一種認為“3*5,a*4” 是一個逗號表達式奥洼,先求出此逗號表達式的值巷疼, 如果a的原值為3,則逗號表達式的值為12灵奖,將12賦給a嚼沿, 因此最后a的值為12。另一種認為:“a=3*5”是一個賦值表達式”瓷患,“a*4”是另一個表達式骡尽,二者用逗號相連,構(gòu)成一個逗號表達式擅编。這兩者哪一個對呢?賦值運算符的優(yōu)先級別高于逗號運算符攀细, 因此應先求解a=3*5(也就是把“a=3*5”作為一個表達式)。經(jīng)計算和賦值后得到a的值為15爱态,然后求解a*4谭贪,得60。整個逗號表達式的值為60锦担。

一個逗號表達式又可以與另一個表達式組成一個新的逗號表達式俭识,如(a=3*5,a*4)洞渔,a+5 先計算出a的值等于15套媚,再進行a*4的運算得60(但a值未變,仍為15)磁椒,再進行a+5得20堤瘤,即整個表達式的值為20。

逗號表達式的一般形式可以擴展為

表達式1浆熔,表達式2本辐,表達式3……表達式n

它的值為表達式n的值。

逗號運算符是所有運算符中級別最低的医增。因此师郑,下面兩個表達式的作用是不同的:

① x=(a=3,6*3)

② x=a=3调窍,6*a

第①個是一個賦值表達式宝冕,將一個逗號表達式的值賦給x,x的值等于18邓萨。第②個是逗號表達式地梨,它包括一個賦值表達式和一個算術(shù)表達式菊卷,x的值為3。

其實宝剖,逗號表達式無非是把若干個表達式“串聯(lián)”起來洁闰。在許多情況下,使用逗號表達式的目的只是想分別得到各個表達式的值万细,而并非一定需要得到和使用整個逗號表達式的值扑眉,逗號表達式最常用于循環(huán)語句(for語句)中.

請注意并不是任何地方出現(xiàn)的逗號都是作為逗號運算符。例如函數(shù)參數(shù)也是用逗號來間隔的赖钞。如

printf("%d腰素,%d,%d"雪营,a弓千,b,c)献起;

上一行中的“a洋访,b,c”并不是一個逗號表達式谴餐,它是printf函數(shù)的3個參數(shù)姻政,參數(shù)間用逗號間隔。

如果改寫為

printf("%d岂嗓,%d扶歪,%d",(a摄闸,b,c)妹萨,b年枕,c);

則“(a乎完,b熏兄,c)”是一個逗號表達式,它的值等于c的值树姨。括弧內(nèi)的逗號不是參數(shù)間的分隔符而是逗號運算符摩桶。括弧中的內(nèi)容是一個整體,作為printf函數(shù)的一個參數(shù)帽揪。

C語言表達能力強硝清,其中一個重要方面就在于它的表達式類型豐富,運算符功能強转晰,因而c使用靈活芦拿,適應性強

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末士飒,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子蔗崎,更是在濱河造成了極大的恐慌酵幕,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,682評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件缓苛,死亡現(xiàn)場離奇詭異芳撒,居然都是意外死亡,警方通過查閱死者的電腦和手機未桥,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,277評論 3 395
  • 文/潘曉璐 我一進店門笔刹,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人钢属,你說我怎么就攤上這事徘熔。” “怎么了淆党?”我有些...
    開封第一講書人閱讀 165,083評論 0 355
  • 文/不壞的土叔 我叫張陵酷师,是天一觀的道長。 經(jīng)常有香客問我染乌,道長山孔,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,763評論 1 295
  • 正文 為了忘掉前任荷憋,我火速辦了婚禮台颠,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘勒庄。我一直安慰自己串前,他們只是感情好,可當我...
    茶點故事閱讀 67,785評論 6 392
  • 文/花漫 我一把揭開白布实蔽。 她就那樣靜靜地躺著荡碾,像睡著了一般。 火紅的嫁衣襯著肌膚如雪局装。 梳的紋絲不亂的頭發(fā)上坛吁,一...
    開封第一講書人閱讀 51,624評論 1 305
  • 那天,我揣著相機與錄音铐尚,去河邊找鬼拨脉。 笑死,一個胖子當著我的面吹牛宣增,可吹牛的內(nèi)容都是我干的玫膀。 我是一名探鬼主播,決...
    沈念sama閱讀 40,358評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼爹脾,長吁一口氣:“原來是場噩夢啊……” “哼匆骗!你這毒婦竟也來了劳景?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,261評論 0 276
  • 序言:老撾萬榮一對情侶失蹤碉就,失蹤者是張志新(化名)和其女友劉穎盟广,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體瓮钥,經(jīng)...
    沈念sama閱讀 45,722評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡筋量,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,900評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了碉熄。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片桨武。...
    茶點故事閱讀 40,030評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖锈津,靈堂內(nèi)的尸體忽然破棺而出呀酸,到底是詐尸還是另有隱情,我是刑警寧澤琼梆,帶...
    沈念sama閱讀 35,737評論 5 346
  • 正文 年R本政府宣布性誉,位于F島的核電站,受9級特大地震影響茎杂,放射性物質(zhì)發(fā)生泄漏错览。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,360評論 3 330
  • 文/蒙蒙 一煌往、第九天 我趴在偏房一處隱蔽的房頂上張望倾哺。 院中可真熱鬧,春花似錦刽脖、人聲如沸羞海。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,941評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽却邓。三九已至,卻和暖如春翘地,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背癌幕。 一陣腳步聲響...
    開封第一講書人閱讀 33,057評論 1 270
  • 我被黑心中介騙來泰國打工衙耕, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人勺远。 一個月前我還...
    沈念sama閱讀 48,237評論 3 371
  • 正文 我出身青樓橙喘,卻偏偏與公主長得像,于是被迫代替她去往敵國和親胶逢。 傳聞我的和親對象是個殘疾皇子厅瞎,可洞房花燭夜當晚...
    茶點故事閱讀 44,976評論 2 355

推薦閱讀更多精彩內(nèi)容

  • 謹記 當你還在原地停留不動時饰潜,你的敵人已經(jīng)前進一大步了;當你還沉浸在成功的喜悅中和簸,你的對手又更上一層樓了彭雾;當你還在...
    長風留言閱讀 1,761評論 2 5
  • ?1 C語言程序的結(jié)構(gòu)認識 用一個簡單的c程序例子,介紹c語言的基本構(gòu)成锁保、格式薯酝、以及良好的書寫風格,使讀者對c語...
    CONLYOUC閱讀 8,706評論 9 66
  • 表達式和運算符 程序中最簡單的表達式就是爽柒,程序中的常量 變量名也是一種簡單的表達式 復雜的表達式是由簡單的表達式組...
    zhaolion閱讀 1,633評論 3 12
  • 其實在我的心目中吴菠,何炅和汪涵都是湖南衛(wèi)視不可缺少的人物。 汪涵...
    影子你陪著我累么閱讀 561評論 0 5
  • 歲月很長浩村,記憶泛黃做葵。 生活,如同一場盛大修行心墅,我執(zhí)著地走在尋夢的路上酿矢。 偶爾也會戀戀不舍,回頭張望嗓化,但夢境的美輪美...
    彼岸花開在忘川閱讀 259評論 4 4