zoukankan      html  css  js  c++  java
  • 练习4.31、4.32、4.33

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

    Ans:根据情况而定,若使用后置版本,那么如果只是使用运算对象的原始值而不需要使用递增后的值,那么后置版本就会继续递增运算对象的值,出现额外的操作,这样降低了程序的性能。

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

    constexpr int size = 5;

    int ia [size]={1,2,3,4,5};

    for(int *ptr=ia,ix=0; ix!=size&& ptr !=ia+size;

    ++ix,++ptr)  {  /*....*/  }

    Ans:定义一个指针指向数组的首元素,然后定义一个ix等于0,接着判断若ix的值小于size则判断指针ptr是否指向数组ia的最后一个元素的下一个位置,若不是则,条件为真,执行下面的语句,然后再进行ix+1,ptr+1的操作,遍历数组的下一个元素。

    4.33:根据4.12节中的表说明下面这条表达式的含义。

    someValue  ?  ++x  ,  ++y : --x,  --y

    Ans:由于逗号运算符的优先级最低,然后是条件运算符,最后是递增递减运算符,所以表达式等价于:( someValue  ?  ++x  ,  ++y : --x) ,   --y  也就是说若条件为真则执行++x,++y,若为假,则执行--x,--y。

  • 相关阅读:
    SSH访问linux 乱码问题
    AppScan典型的工作流程
    安装&卸载功能 [测试思路]
    巴菲特
    AppScan 庐山真面目
    常见网页安全测试工具
    AppScan报告类型
    股票市场股票状态
    我的2010
    股票市场开盘时间
  • 原文地址:https://www.cnblogs.com/Dark-King/p/9448285.html
Copyright © 2011-2022 走看看