详解逗号表达式

1.什么叫做逗号表达式

  逗号表达式(comma expression)是 C 语言中的一种运算符,它使用逗号将两个或多个表达式连接在一起形成一个新的表达式。(本质上还是一种运算)

格式:

(expression1, expression2, ..., expressionN)

expression都是C语言中常见的表达式

2.逗号表达式的执行

执行规则:从左至右依次执行expression,并将最后一个expression作为逗号表达式的结果

下面请看代码:

int main()
{int x, y;x = (5, 3, 9);//5,3可直接忽略,最后会将9赋给x;y = (x++, x + 2, x * 2);//等价于int x, y;x = 9;y = (x++, x + 2, x * 2);//y的最后结果为20//1.x++等价于x=x+1,所以这一步x变为10;//2.x+2 执行结果为12,但并没有进行赋值操作,所以x还是为10;//3.执行y=x*2;对于逗号表达式来说,只有最后一个子表达式才有赋值的操作return 0;
}int main()
{int arr[] = { 1,2,(3,4),5 };printf("%d\n", sizeof(arr));//输出结果是16return 0;                   //(3,4)是逗号表达式,从左向右执行,等价于4//也即等价于arr[]={1,2,4,5};
}

3.逗号表达式常见用法

  • 在一些特定的循环语句中,例如 for 循环体中的多条语句需要计算。
for (int i = 0, j = n - 1; i < j; ++i, --j)
//定义变量时一次定义了两个,使代码更加简洁紧凑
  • 定义函数或宏时
    #define MAX(a,b) ((a)>(b) ? (a):(b))
    int main()
    {int a = 10;int b = 20;int c = MAX(a, b);return 0;
    }

  • 多个计算过程需要放在一个表达式中,但是你只需要最后一个表达式的结果。例如 a++, b++, c++, d++ 这样的连续的自增操作,可以写成 (a++, b++, c++, d++) 这样的逗号表达式,既简洁又清晰。

4.总结

逗号表达式是C语言常见的一种运算符,使用得当会使得代码的效率大大提升,但也要注意逗号表达式不易理解的特点,避免造成不必要的麻烦


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部