美文网首页
c语言学习总结

c语言学习总结

作者: 月球的企鹅 | 来源:发表于2021-06-19 00:46 被阅读0次

    逗号表达式与自增自减

    自增自减

    b = a++ 等价于 b = a; a = a+1;

    b = ++a 等价于 a= a+1; b = a;

    逗号表达式

    一般形式:e1,e2,e3,.....,en

    • 逗号是一个多目运算符,且优先级最低,而且是左结合,又称为顺序求值运算符,依次运算e1,e2.....,en

    • 整个逗号表达式的值为最后一个en的值

    • 逗号表达式与函数中参数的区别:

      printf("d%, d%, d%", a, b, c); // 三个值从右往左运算
      printf("d%",( a, b, c)); // 三个值从右往左运算
      

    eg:

    int sum = num = 7;
    sum = ++num, ++num;
    

    上式最终num = 9 sum = 8,因为赋值运算符的优先级高于逗号表达式,所以第一个++num运算完后,就赋值给了sum。

    改成如下,则sum的值为9:

    int sum = num = 7;
    sum = (++num, ++num);
    

    注意: 遇到计算结果与预期明显不符的情况,可以先检查是否优先级理解错误,通常都是优先级搞错。

    常引起问题的有逗号运算符与赋值运算符、&作为取址运算符和&作为位运算符的两种情况

    相关文章

      网友评论

          本文标题:c语言学习总结

          本文链接:https://www.haomeiwen.com/subject/sfhryltx.html