C++ Primer Plus(五)——循环和关系表达式

久未见 提交于 2019-12-05 08:41:33
  1. 优先级表表明,赋值运算符是从右向左结合的

  2. 定义一个const值来表示数组中元素的个数是一个好办法

  3. 对同一条语句的同一个值递增或递减多次,C++没有定义这种行为,也就是说这条语句在不同的系统上将生成不同的结果。

  4. 前缀运算符的效率高于后缀运算符

  5. 前缀运算符和解除引用运算符的优先级相同,以从右向左的方式结合;

    后缀运算符的优先级高于前缀运算符和引用运算符,以从左向右的方式结合。

  6. 当C++语法只允许放一个表达式时,可使用逗号运算符将几个表达式合为一个,但不能将两个声明组合起来,可使用一个声明语句表达式来创建并初始化两个变量。

  7. 在所有运算符中,逗号表达式的优先级是最低的:它确保首先计算第一个表达式再计算第二个表达式,它的值是最后一个表达式的值。

  8. C++提供了6种运算符来对数字进行比较,也可将这些运算符用于字符,但不能用于C-风格字符串,但可用于string类对象。

  9. C-风格字符串应用strcmp( )函数来比较,若第一个字符串小于第二个则返回赋值,若大于返回正值,若相等返回0,即不等时是true,相等时是false。

  10. C-风格的两个字符串即使存储在长度不同的数组中,也可能是相同的,这是因为C-风格字符串是通过结尾的空值字符定义的,而不是其所在的数组长度定义的。

  11. C++一般使用for循环进行循环计数,在无法预先知道将执行的次数时,使用while循环。

  12. for循环中省略了测试条件时,则认为条件为true。

  13. 编写延时循环:

    1. ANSI和C++库中的clock( )函数返回程序开始执行后所用的系统时间。

    2. 头文件ctime提供了常量CLOCKS_PER_SEC,该常量等于每秒钟包含的系统单位数

    3. 将系统时间除以该常量得到秒数,或将秒数乘以该常量得到以系统时间为单位的时间

    4. clock_t类型可将得到的乘积结果转换成适合当前系统的结果

  14. C++11新增了一种基于范围的for循环:

    1. 仅仅显示元素:

      for ( 类型 : 数组)循环体

    2. 修改数组元素:

      for ( & 类型 : 数组)循环体

  15. 使用cin进行输入:

    1. 原始的cin进行输入:cin>>char

      1. 忽略空格和换行符,制表符

      2. 输入内容被缓冲,只有用户在按下回车键后,输入的内容才被发送给程序

    2. 使用cin.get(char)进行输入:读取空格,换行符,制表符


属性
cin.get(ch) ch=cin.get( )
传输输入字符的方式 赋给参数ch 将函数返回值赋给ch
用于字符输入时函数的返回值 istream(执行bool转换后为true) int类型的字符编码
到达EOF时函数的返回值 istream(执行bool转换后为false) EOF
    1. 检测到EOF后,cin将两位(eofbit和failbit)设置为1,可通过cin.eof( )来查看eofbit是否被设置,而cin.fail( )可以查看eofbit或failbit是否被设置

    2. istream类提供了一个可以将istream对象转换为bool值的函数;当cin出现在需要bool值的地方时,该转换函数自动被调用

    3. 由于EOF不是的不是有效的字符编码,因此有可能不与char类型兼容。如果要使用cin.get( )测试EOF,则必须将返回值赋给int变量,在显示时强制转换为char类型。

    4. get( )的主要用途是将stdio.h的getchar( )和putchar( )函数转换为iostream的cin.get( )和cout.put( )



标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!