1. 程式人生 > >C語言中‘,’運算子存在的意義

C語言中‘,’運算子存在的意義

逗號運算子(‘,’)是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.作為考試題出現在考生試卷上……

個人認為,‘,’和‘{}’的作用類似,花括號讓只能寫一條語句的地方可以寫多條語句,逗號運算子讓只能寫一個表示式的地方可以寫多個表示式。