zoukankan      html  css  js  c++  java
  • ++的前缀与后缀效率;逗号操作符

    如果递增表达式的值不被使用,纯粹使用表达式副作用来改变变量值,则++x;与x++;在作用上效果一样。

    但是对于用户定义的,且有用户定义的递增和递减操作符,前缀的效率更高一些。因为用户定义前缀时,将值加1,然后返回结果。但是后缀版本,首先赋值一个拷贝,将其加一,然后将复制的拷贝返回。。所以对于类而言,前缀版本效率更高。

    从语义角度来看,前缀参与表达式运算时返回的是x + 1。比较符合++x;的作用。所以C和C++中令x自增时,养成 ++x;的代码风格更好。。在for(;;++x){;}中也是如此。

    逗号在C/C++中有两个作用。

    1. 将变量列表中相邻的名称分开(多用在声明中)

      列表就是{}(貌似这个名称在Python中强调更多)。比如
      int a[2] = {1, 2};
      enum food {noodle, chicken}; //注意此处enum food = {noodle, chicken};是不正确的。=是赋值操作符。这里,food不能说是一个变量,更多的可以把它看作是一种类型。然后 {x, y}这样在 = 右边时,表示的一个数组。。。
      
    2. 逗号操作符,将两个或者两个以上的表达式合并为一个。

      典型的如for(i = 0, j = 0; i < n; ***)等。
    3. 逗号的花絮

      int i = 0, j = 234;中,逗号的作用仍然是列表分隔符。。因为这是个声明语句。逗号不能连接两个声明语句。只能连接表达式。

      逗号操作符有两个特性:首先它确保先计算左边表达式,再计算右边表达式。其次,逗号表达式的值是右边表达式的值。cat = (7, 240);那么cat的值是240。再者,cat的优先级是最低的。所以语句cat = 7, 240;相当与语句(cat = 7),240;

    • sadasda
  • 相关阅读:
    第一阶段意见评论
    《大道至简》阅读笔记03
    大二下第十二周学习笔记
    《大道至简》阅读笔记02
    课上练习—单词统计
    大二下第十一周学习笔记
    《大道至简》阅读笔记01
    《人月神话》阅读笔记03
    大二下第十周学习笔记
    团队项目前期冲刺-10
  • 原文地址:https://www.cnblogs.com/xyqhello/p/3521583.html
Copyright © 2011-2022 走看看