C語言中的逗號運算符詳解
C語言中的逗號運算符
在C語言中逗號“,”也是一種運算符,稱為逗號運算符。 其功能是把兩個表達式連接起來組成一個表達式, 稱為逗號表達式。其一般形式為:
表達式1, 表達式2
其求值過程是分別求兩個表達式的值,并以表達式2(即最右邊的一個表達式)的值作為整個逗號表達式的值。
#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)先級排列中,括號>加減乘除>賦值>逗號。
所以當前這個等式的運算應(yīng)該是:
step1:a = 2*3; //結(jié)果a=6
step2:計算a*5; //結(jié)果是30【注意:此時a的值是不變的,仍舊是6?。?!】
step3:i = (a=2*3, a*5); //得到i值:30.【不去執(zhí)行a+6的原因在于:因為賦值符號 = 的優(yōu)先級比逗號的高,所以直接把30賦值給了 i。 】
如果該等式變成了 i=(a=2*3,a*5,a+6);
則輸出結(jié)果為12.
step1:a = 2*3; //結(jié)果a=6
step2:計算a*5; //結(jié)果是30
step3:計算a+6;//結(jié)果是12
step4:將最右邊的一個等式a+6的值賦給i
到此這篇關(guān)于C語言中的逗號運算符的文章就介紹到這了,更多相關(guān)C語言逗號運算符內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
海量數(shù)據(jù)處理系列之:用C++實現(xiàn)Bitmap算法
本篇文章是對用C++實現(xiàn)Bitmap算法進行了詳細的分析介紹,需要的朋友參考下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幾乎都沒有,而每次寫代碼都要去找顏色的圖屬實太麻煩。所以本文將包全部集成了進來,終于有了這套包含200個colormap的工具函數(shù),希望對大家有所幫助2023-02-02