C語言中‘,’運算子存在的意義
阿新 • • 發佈:2019-01-02
逗號運算子(‘,’)是C語言中優先順序最低的運算子,它用於連線兩個表示式(n-1個‘,’可以連線n個表示式)並從左至右執行表示式,最後一個表示式的值作為整個表示式的值。基本格式如下:
表示式1,表示式2,表示式3…,表示式n
舉個例子:
#include<stdio.h>
main()
{
unsigned int a,b,c,d,e,f,g;
g=(a=1*2,b=a*3,c=b*4,d=c*5,e=d*6,f=e*7,f*8);
printf("%d\n",g);
}
最後g的值為40320。然而下面一段程式碼
#include<stdio.h>
main()
{
unsigned int a,b,c,d,e,f,g;
a=1*2;
b=a*3;
c=b*4;
d=c*5;
e=d*6;
f=e*7;
g=f*8;
printf("%d\n",g);
}
的結果也為40320。而且,在CodeBlocks下發現執行兩段程式碼所用的時間一樣,那麼逗號運算子存在的意義是什麼?下面給出一些可以用到逗號運算子的地方
1.巨集定義
#define swap(a,b) a=a+b,b=a-b,a=a-b;
2.函式返回值
return a=1,b=2,a*b;
3.for迴圈
for(i=0,j=10;i<j;i++,j--)
4.作為考試題出現在考生試卷上……
個人認為,‘,’和‘{}’的作用類似,花括號讓只能寫一條語句的地方可以寫多條語句,逗號運算子讓只能寫一個表示式的地方可以寫多個表示式。