设为首页 加入收藏

TOP

4.10 逗号运算符
2013-10-07 16:28:59 来源: 作者: 【 】 浏览:108
Tags:4.10 逗号 运算

4.10  逗号运算符

逗号运算符(comma operator)含有两个运算对象,按照从左向右的顺序依次求值。和逻辑与、逻辑或以及条件运算符一样,逗号运算符也规定了运算对象求值的顺序。

对于逗号运算符来说,首先对左侧的表达式求值,然后将求值结果丢弃掉。逗号运算符真正的结果是右侧表达式的值。如果右侧运算对象是左值,那么最终的求值结果也是左值。

逗号运算符经常被用在for循环当中:

  1. vector<int>::size_type cnt = ivec.size();  
  2. // 将把从size到1的值赋给ivec的元素  
  3. for(vector<int>::size_type ix = 0;  
  4.                 ix != ivec.size(); ++ix, --cnt)  
  5.     ivec[ix] = cnt;  

这个循环在for语句的表达式中递增ix、递减cnt,每次循环迭代ix和cnt相应改变。只要ix满足条件,我们就把当前元素设成cnt的当前值。

4.10节练习

练习4.31:本节的程序使用了前置版本的递增运算符和递减运算符,解释为什么要用前置版本而不用后置版本。要想使用后置版本的递增递减运算符需要做哪些改动?使用后置版本重写本节的程序。

练习4.32:解释下面这个循环的含义。

  1. constexpr int size = 5;  
  2. int ia[size] = {1,2,3,4,5};  
  3. for (int *ptr = iaix = 0;  
  4. ix != size && ptr != ia+size;  
  5. ++ix, ++ptr) { /* . . . */ }  

练习4.33:根据4.12节中以表(第166页)说明下面这条表达式的含义。
 

  1. someva lue   ++x, ++y : --x, --y 

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇4.9 sizeof运算符 下一篇4.11 类型转换

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: