• 练习3.7、3.8、3.9、3.11


    3.7:就上一题完成的程序而言,如果将循环控制变量的类型设为char将会发生什么?先估计一下结果,然后再进行编程验证。

    得到的结果与上一程序一样。

    3.8:分别使用while循环和传统的for循环重写第一题的程序,你觉得哪种形式更好呢?为什么?

    我觉得范围for语句最好,形式上最简便,而且不需要去判断字符串的大小,其次是while语句,相对简便,但是对于本程序来讲,需要知道string类的对象大小,防止出现未定义的结果,最后是传统for循环语句,相对繁琐。

    3.9:下面的程序有何作用?它合法吗?如果不合法,为什么?

    string s;

    cout<<s[0]<<endl;

    Ans:不合法。该程序的string类的对象被初始化为空串,使用下标运算符访问对象时,不能访问位置上为空的字符,会出现无法预知的结果。(我在Linux下测试,编译能通过)。

    3.11:下面的范围for语句合法吗?如果合法,c的类型是什么?

    const string s=" keep out !  ";

    for(auto &c:s)

    {/*.....*/}

    Ans:如果只是访问string对象的值的话,合法,c是绑定到常量的引用。;如果是要修改string对象的值的话不合法。

  • 相关阅读:
    从B树、B+树、B*树谈到R 树
    平衡二叉树、B树、B+树、B*树
    数据库事务和四种隔离级别
    python 安装surprise库解决 c++tools错误问题
    python的sorted函数
    爬虫出现gbk错误
    Windows下Python安装numpy+mkl,Scipy和statsmodels
    Flask--框架及路由
    flask常见面试题
    RE正则表达式
  • 原文地址:https://www.cnblogs.com/Dark-King/p/9385426.html
Copyright © 2020-2023  润新知