C語言中的逗號運(yùn)算符詳解
C語言中的逗號運(yùn)算符
在C語言中逗號“,”也是一種運(yùn)算符,稱為逗號運(yùn)算符。 其功能是把兩個表達(dá)式連接起來組成一個表達(dá)式, 稱為逗號表達(dá)式。其一般形式為:
表達(dá)式1, 表達(dá)式2
其求值過程是分別求兩個表達(dá)式的值,并以表達(dá)式2(即最右邊的一個表達(dá)式)的值作為整個逗號表達(dá)式的值。
#include<stdio.h> int main() {?? ? ?? ?int i ,a; ?? ?i =(a=2*3, a*5), a+6;? ?? ?printf("%d", i); ?? ?return 0;?? ? ?}
輸出結(jié)果:30.
原因分析:
優(yōu)先級排列中,括號>加減乘除>賦值>逗號。
所以當(dāng)前這個等式的運(yùn)算應(yīng)該是:
step1:a = 2*3; //結(jié)果a=6
step2:計(jì)算a*5; //結(jié)果是30【注意:此時a的值是不變的,仍舊是6!?。 ?/p>
step3:i = (a=2*3, a*5); //得到i值:30.【不去執(zhí)行a+6的原因在于:因?yàn)橘x值符號 = 的優(yōu)先級比逗號的高,所以直接把30賦值給了 i。 】
如果該等式變成了 i=(a=2*3,a*5,a+6);
則輸出結(jié)果為12.
step1:a = 2*3; //結(jié)果a=6
step2:計(jì)算a*5; //結(jié)果是30
step3:計(jì)算a+6;//結(jié)果是12
step4:將最右邊的一個等式a+6的值賦給i
到此這篇關(guān)于C語言中的逗號運(yùn)算符的文章就介紹到這了,更多相關(guān)C語言逗號運(yùn)算符內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
C到C++的升級關(guān)系及區(qū)別實(shí)例探究
這篇文章主要為大家介紹了C到C++的升級關(guān)系及區(qū)別實(shí)例探究,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2024-01-01海量數(shù)據(jù)處理系列之:用C++實(shí)現(xiàn)Bitmap算法
本篇文章是對用C++實(shí)現(xiàn)Bitmap算法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-05-05關(guān)于C++中菱形繼承和虛繼承的問題總結(jié)
C++的三大特性為:封裝,繼承,多態(tài)。但是在繼承中,存在一些使用方面的問題需要注意,下面這篇文章主要給大家總結(jié)介紹了關(guān)于C++中菱形繼承和虛繼承的問題,需要的朋友可以參考借鑒,下面來一起看看吧。2017-08-08MATLAB全網(wǎng)最全的colormap的使用教程詳解
眾所周知,MATLAB中的colormap只有少得可憐的幾種,有很多應(yīng)用在很特殊的圖形中的colormap幾乎都沒有,而每次寫代碼都要去找顏色的圖屬實(shí)太麻煩。所以本文將包全部集成了進(jìn)來,終于有了這套包含200個colormap的工具函數(shù),希望對大家有所幫助2023-02-02C語言用數(shù)組實(shí)現(xiàn)反彈球消磚塊
這篇文章主要為大家詳細(xì)介紹了C語言用數(shù)組實(shí)現(xiàn)反彈球消磚塊,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-05-05c語言中用位運(yùn)算實(shí)現(xiàn)加法技巧介紹
用位運(yùn)算實(shí)現(xiàn)加法也就是計(jì)算機(jī)用二進(jìn)制進(jìn)行運(yùn)算,32位的CPU只能表示32位內(nèi)的數(shù),這里先用1位數(shù)的加法來進(jìn)行,需要的朋友可以參考下2012-11-11