zoukankan      html  css  js  c++  java
  • C++的逗号运算符

    逗号运算符( , )是C++语言运算符中优先级最低的一种运算符,结合顺序是从左至右,用来顺序求值(最后一个逗号后面表达式的值作为整个表达式的值)。

    感觉这个东西还是挺冷门的,之前都不知道,平时也比较少用到,不过探究这个是个挺有趣的过程。

    以下是几个无聊的小实验:

    1. 逗号+常数语句的返回值

      int a = 1;
      a = (1, 2, 3);//a = 3
      
    2. 逗号+赋值语句的返回值

      int a = 1;
      int b;
      a = (b = 2, b += 2);//b = 4, a = 4, 顺便知道了b += 2与b = 2语句的返回值都是b
      
    3. 逗号+自增/减运算符的返回值 I

      int a = 10;
      int b = 2;
      a = (a++, b = 2);//最终结果为右边语句的返回值,所以a = 2
      
    4. 逗号+自增/减运算符的返回值 II

      int a = 10;
      int b = 2;
      b = (a++, a++);//第二个a++语句结束再结算,所以b = 11
      
    5. 逗号+自增/减运算符的返回值 III

      int a = 10;
      a = (a--, --a);//a = 8
      
    6. 逗号+自增/减运算符的返回值 IV

      int a = 10;
      int b = 2;
      a = (b += a++, (a++) + b++);//a = 24, b = 13, ((a++)+ b++)的值为(11 + 12),然后赋值给a之后a再自增到24
      
    7. 最后的实验

      int a[3] = { 0,0,0 };
      int b = 0;
      a[++b] = (a[b++] = 2, b++);
      for (auto num : a)
      {
            cout << num << ' ';
      }
      //这段代码又涉及了自增的一些坑,b++和++b的入栈顺序,感兴趣的可以自己试试看,笔试挺喜欢考这种阴间的东西的
      

      希望对大家有帮助。

  • 相关阅读:
    自我介绍
    企业级应用与互联网应用差异
    Java EE 目标
    自我评价
    第二周———搜查令
    软件工程项目____搜查令
    结对项目--黄金点游戏(邓乐&曾亮)
    wordcount程序
    四则运算 来自 http://www.cnblogs.com/ys1101/p/4368103.html
    问题
  • 原文地址:https://www.cnblogs.com/VisionWongBlog/p/13150001.html
Copyright © 2011-2022 走看看