C语言:逗号表达式

一、逗号表达式的运算法则

从左向右依次计算,逗号表达式结果为最后一个表达式的结果

代码如下:

int main()
{
    int a = 1;
    int b = 2;
    int c = 3;
    int d = 4;
    int e = (a = b + c, b = c + d, c = d);

    printf("%d %d %d %d %d", a, b, c, d, e);//5 7 4 4 4

    return 0;
}

二、逗号表达式的非常规用法

举例:将while循环中的判断语句和执行语句合并为的逗号表达式

//原始代码
int main()
{
    int i = 0;
    int a = 0;

    while (i < 5)
    {
        a = a + 1;
        i++;
    }
    printf("%d", a);
    return 0;
}

//改用逗号表达式
int main()
{
    int i = 0;
    int a = 0;

    while (a = a + 1, i++, i < 5)
    {

    }
    printf("%d", a);
    return 0;
}

两个代码运行结果相同,都是5

你可能感兴趣的:(c语言)