官术网_书友最值得收藏!

2.7 逗號運算符和逗號表達式

“,”是C語言提供的一種特殊的運算符,稱為逗號運算符。逗號運算符的結合性為從左到右。在所有運算符中,逗號運算符的優先級最低。

由逗號運算符將表達式連接起來的式子稱為逗號表達式。

逗號表達式的一般格式為:

  表達式1,表達式2,…,表達式n

逗號表達式的求解過程為:先求表達式1的值,再求表達式2的值,依次進行,最后計算表達式n,整個逗號表達式的值就是最后一個表達式的值。例如,逗號表達式3+5,1+2的值為3。又如,逗號表達式a=2*3,a*5的求解過程是:先計算a=2*3,經過計算和賦值后得到a的值為6,然后計算a*5,得30,因此整個逗號表達式的值為30。

使用逗號表達式要注意以下幾個方面:

①逗號表達式可以和另一個表達式組成一個新的逗號表達式。

例如:逗號表達式(a=2*3,a*5),a+5

表達式1是(a=2*3,a*5),表達式2是a+5,先計算表達式1的值為30,再計算表達式2的值為35,因此整個逗號表達式的值為35。

②并不是所有的逗號都是逗號運算符。

例如:

int a,b,c;       /*這里的逗號是變量之間的分隔符,而不是逗號運算符*/

printf("%d,%d,%d\n",(a,b,c),a,b);       /*只有(a,b,c)里的逗號才是逗號運算符*/

【例2.13】  逗號運算符運算舉例。

#include<stdio.h>

void main()

{ int a=3,b=4,c=5,x1,x2,x3,x4,x5,x6;

 x1=(a,b,c);

 x2=a,b,c;

 x3=(a++,--b,a+b);

 x4=a++,--b,a+b;

 x5=(a++,--b,a+b+c++);

 x6=((a,b,c),a+b);

 printf("x1=%d,x2=%d,x3=%d,x4=%d,x5=%d,x6=%d\n",x1,x2,x3,x4,x5,x6);

}

程序運行結果:

x1=5,x2=3,x3=7,x4=4,x5=12,x6=7

主站蜘蛛池模板: 汝城县| 淳化县| 潼南县| 永靖县| 德兴市| 汉川市| 许昌县| 育儿| 建湖县| 贺兰县| 张家口市| 桦南县| 上饶县| 历史| 耒阳市| 定日县| 大同县| 高青县| 南澳县| 广安市| 湘乡市| 城固县| 大关县| 东乡族自治县| 峨眉山市| 中宁县| 疏勒县| 关岭| 温州市| 通化市| 岳普湖县| 富阳市| 华安县| 通化市| 深水埗区| 东兴市| 龙门县| 吉隆县| 北川| 上蔡县| 龙门县|