• C语言基础丨运算符之逗号运算符(八)


    在C语言和C++语言中,可以把多个表达式用逗号联接起来(或者说,把这些表分达式用逗号分开),构成一个更大的表达式。其中的逗号称为逗号运算符,所构成的表达式称为逗号表达式。逗号表达式中用逗号分开的表达式分别求值,以最后一个表达式的值作为整个表达式的值。

    逗号运算符是二元运算符,逗号表达式的一般形式为:

    表达式1 , 表达式2

    逗号表达式的一般形式可以扩展为:

    表达式1,表达式2,表达式3……表达式n

    它的值为表达式n的值。

    逗号运算符确保操作数被顺序地处理:先计算左边表达式1的操作数,再计算右边表达式2的操作数。整个逗号表达式的值是表达式2的值。

    例如,逗号表达式“3+5,6+8”的值为14。

    逗号运算符的特点:

    优先级别最低;

    自左往右执行表达式;

    返回值为表达式最后一个.

    逗号运算符的优先级是所有运算符中最低的。如果希望逗号运算的结果用于另一个赋值运算中,就需要使用括号。

    因此,下面两个表达式的作用是不同的:

      ① x=(a=3,6*3)

      ② x=a=3,6*a

    第①个是一个赋值表达式,将一个逗号表达式的值赋给x,x的值等于18。第②个是逗号表达式,它包括一个赋值表达式和一个算术表达式,x的值为3。

    其实,逗号表达式无非是把若干个表达式“串联”起来。在许多情况下,使用逗号表达式的目的只是想分别得到各个表达式的值,而并非一定需要得到和使用整个逗号表达式的值,逗号表达式最常用于循环语句(for语句)中.

    请注意并不是任何地方出现的逗号都是作为逗号运算符。例如函数参数也是用逗号来间隔的。如

      printf("%d,%d,%d",a,b,c);

    上一行中的“a,b,c”并不是一个逗号表达式,它是printf函数的3个参数,参数间用逗号间隔。

    如果改写为

      printf("%d,%d,%d",(a,b,c),b,c);

    则“(a,b,c)”是一个逗号表达式,它的值等于c的值。括弧内的逗号不是参数间的分隔符而是逗号运算符。括弧中的内容是一个整体,作为printf函数的一个参数。

    注意:并不是任何地方出现的逗号,都是逗号运算符。很多情况下,逗号仅用作分隔符。

    逗号表达式的用途:

    在for循环里经常会用到,

    1、在for里面的应用:

    int i;int j;

    for(i=0,j=0;i<5;i++,j++)

    2、当分隔符:int i,j;

    除了在for循环里用到外,我们在宏定义里也经常遇到:

    #define SWAP(a,b)     a^=b,b^=a,a^=b

    而传统多行语句的写法是do {...} while(0);

    相比而言,很多时候在宏中还有用逗号表达式写简洁多了。

    最后,如果你正在学习编程遇到瓶颈,感到迷茫,困惑,值得加入我的【C语言C++学习企鹅圈子

    学习交流,技术探讨,面试指导,简历修改...还有超多源码素材等学习资料,零基础的视频等着你!

  • 相关阅读:
    [BZOJ]4810: [Ynoi2017]由乃的玉米田
    VK Cup 2017
    Educational Codeforces Round 19
    [BZOJ]4162: shlw loves matrix II
    2017-4-14校内训练
    第一次 CSP-S 的游记
    APIO2009 采油区域
    NOIP2017 逛公园
    NOIP2013 货车运输
    【9018:1458】征兵
  • 原文地址:https://www.cnblogs.com/mu-ge/p/14369676.html
Copyright © 2020-2023  润新知