• 【C++ Primer Plus学习记录】递增运算符(++)和递减运算符(--)


    递增运算符(++)和递减运算符(--):前缀版本位于操作数前面,如++x;后缀版本位于操作数后面,如x++。两个版本对操作数的影响是一样的,但是影响的时间不同。这就像吃饭前买单和吃饭后买单的最终结果是一样的,但是买单的时间不同。

    程序清单5.7演示递增运算符(++)的这种差别。

    1. //5.7
    2. #if 1
    3. #include
    4. using namespace std;
    5. int main()
    6. {
    7. int a = 20, b = 20;
    8. cout << "a = " << a << ": b = " << b << endl;
    9. cout << "a++ = " << a++ << ": ++b = " << ++b << endl;
    10. cout << "a = " << a << ": b = " << b << endl;
    11. system("pause");
    12. return 0;
    13. }
    14. #endif

    a++意味着使用a的当前值计算表达式,然后将a的值加1;而++b的意思是先将b的值加1,然后使用新的值来计算表达式

    虽然选择使用前缀格式还是后缀格式对程序的行为没有影响,但执行速度可能有细微的差别。对于内置类型和当代的编译器而言,这看似不是什么问题。然而,C++允许您针对类定义这些运算符,在这种情况下,用户这样定义前缀函数:将值加1,然后返回结果;但后缀版本首先复制一个副本,将其加1,然后将复制的副本返回。因此,对于类而言,前缀版本的效率比后缀版本高。

    总之,对于内置类型,采用哪种格式不会有差别;但对于用户定义的类型,如果有用户定义的递增和递减运算符,则前缀格式的效率更高。

  • 相关阅读:
    phpstudy脚本编写 和sql注入编写
    nprogress进度条的安装与使用
    Linux软硬连接与动静态库
    Redis小记(一)
    从0开始搭建Web自动化测试框架全网最牛最全教程
    [go学习笔记.第十六章.TCP编程] 2.项目-海量用户即时通讯系统
    MySQL 45 讲 | 14 count(*)这么慢,我该怎么办?
    电脑入门:电脑硬件入门到精通
    通过RS232串口调试服务器
    0915练习
  • 原文地址:https://blog.csdn.net/qq_39072304/article/details/134562526