• C++PrimerPlus跟读记录【第五章】循环和关系表达式


    1、for 循环

    • for(initialization; test-expression; updata-expression)
    • test-expression 关系表达式,结果强制为bool类型,true or false。

    表达式和语句

    • C++表达式是 值 或 值与运算符的组合,每个表达式都有值。
    • 表达式只要加上分号,就是语句

    递增运算符和递减运算符

    • ++x;  前缀,先将x值加一,再用新值计算表达式
    • x++;  后缀,先用当前值计算表达式,再将x加一
    • 前缀:将值加一,返回结果
    • 后缀:先复制副本,将其加一,返回副本
    • 前缀效率更高

    优先级

    • 前缀递增/减、* 优先级相同,从右到左结合
    • 后缀递增/减优先级相同,比前缀优先级高,从右到左结合
    1. // 前缀,从右到左结合
    2. *++pt; // 先将pt递增后移,再取后移指针对应的值
    3. ++*pt; // 先取pt指向的值,再将这个值加一
    4. // 后缀优先级更高
    5. (*pt)++; // 先取pt指向的值,再将这个值加一
    6. *pt++; // 后缀优先级更高,pt先加一,然后取值

    复合语句

    • 语句块中的变量,在语句块执行完后被释放。
    • 外部声明变量,语句块声明同名变量,将在语句快内覆盖外部变量,结束语句块后,外部变量再次可见。

    C风格字符串比较

    word == "mate";  // 相同字符,不同地址。结果为false
    • 数组名是数组的地址,字符串常量也是地址
    • 不能比较字符串,可以比较字符,因为字符实际上是整型。
    • string类可以使用 word != "mate" ;要求两变量至少一个为string对象。

    strcmp() 函数

    • 接收两个字符串地址为参数,指针、字符串常量、字符数组名。
    • 两字符串相同,返回0
    • 两字符串不同,按字符系统编码比较结果返回不同值。
    • ASCII码,大写字母比小写字母小。
    • 第一个字符串字符顺序在前,返回负数
    • 第一个字符串字符顺序灾后,返回正数

    2、while 循环

    编写延时

    • 缺点要修改计数限制
    1. #include
    2. cin >> secs;
    3. clock_t delay = secs * CLOCK_PER_SEC;
    4. clock_t start = clock();
    5. while (clock() - start < delay) {
    6. ;
    7. }
    • 符号常量 CLOCKS_PER_SEC 表示每秒钟包含的系统时间个数
    • clock() 函数返回程序开始执行后所用的系统时间
    • clock_t 类型,编译器将转换为long、unsigned int等适合系统的类型
    • 该程序以系统时间为单位计算时延

    类型别名

    • 问题

    3、do while 循环

    4、基于范围的for循环

    5、循环和文本输入

    cin

    • 发送给cin的输入被缓存,在回车后发送给程序。
    • cin忽略空格和换行符

    cin.get(ch)

    • 读取输入的下一个字符,包括空格

    cin.get(name, ArSize) 

    • 函数重载的OOP特性:同名函数,参数列表不同

    文件尾条件

    • 文件尾(EOF)
    • C++模拟UNIX,将Ctrl+D视为仿真的EOF
    • Windows使用Ctrl+Z
    • cin检测到EOF,将不再读取,即使再次调用
    • 使用cin.clear(); 重置输入流

    6、嵌套循环和二维数组

    • 二维数组声明 [行][列] :4个数组元素,每个元素包括5个值

    初始化

    1. // 一维数组
    2. int btus[4] = { 23, 11, 35, 35};
    3. //二维数组
    4. int maxtemps[4][5] =
    5. {
    6. {1, 2, 3, 4, 5};
    7. {};
    8. {};
    9. {};
    10. };
    11. // maxtemps[0] 是 {1, 2, 3, 4, 5};
    12. // maxtemps[0][0] 是 1

  • 相关阅读:
    Coremail受邀参加中非数字能力建设合作论坛
    有什么好用的站内搜索SaaS能帮网站实现站内搜索功能?
    FPGA工程师面试试题集锦21~30
    Code For Better 谷歌开发者之声——TensorFlow
    全国双非院校考研信息汇总整理 Part.6
    Django-request请求
    1区TOP计算机SCI,CCF推荐,对国人友好,正在征稿中~
    window 11 wsl 安装docker
    不加班的测试/开发程序员不是好程序员?长远规划好自己的职场......
    Nacos安装
  • 原文地址:https://blog.csdn.net/RiceVan/article/details/117462081