• 练习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。

  • 相关阅读:
    Java中顺序、并行与并发
    Java设计模式之Iterator
    渗透基础流程思路丶技巧丶与总结
    阿里巴巴Java开发手册之并发处理注意事项
    Java中Thread方法启动线程
    IOCP之客户端及消息传递
    IOCP简单实现
    JAVA 递归线程池测试 ExecutorService / ForkJoinPool
    TCP与UDP的一些心得
    七.badboy检查点和参数化
  • 原文地址:https://www.cnblogs.com/Dark-King/p/9448285.html
Copyright © 2020-2023  润新知