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的入栈顺序,感兴趣的可以自己试试看,笔试挺喜欢考这种阴间的东西的
      

      希望对大家有帮助。

  • 相关阅读:
    (转)Python中的__init__和__new__
    PEP8
    python lstrip()函数
    python中的生成器跟迭代器
    callback
    关于0.0.0.0这个ip的疑问
    Python import中相对路径的问题
    python读取excel
    git本地管理多个密钥/账户
    词法分析之有确定、不确定自动机及其生成器
  • 原文地址:https://www.cnblogs.com/VisionWongBlog/p/13150001.html
Copyright © 2011-2022 走看看