• 第五章 循环和关系表达式


    for和while循环是入口循环,而do while是出口循环。

    P134

    副作用和顺序点:

    副作用(side effect)指的是计算表达式时对某些变量进行了修改。

    顺序点(sequence point)是程序执行过程的一个点,在进行下一步之前将确保对所有的副作用都进行了评估。

    前缀格式和后缀格式:

    在写代码的过程中应尽量避免:

    y = (4 + x++) + (6 + x++);

    这样的操作。

    前缀函数将值加1,然后返回结果。

    后缀函数先复制一个副本,将其加1,然后将复制的副本加1。

    显然前缀版本的效率要高。

    后缀运算符的优先级要高于指针运算符‘*’。

    组合赋值运算符(语句块):

    用花括号括起来的语句块中定义的变量的作用域只为该语句块。

    逗号运算符:

    允许将两个表达式放到C++句法只允许放一个表达式的地方。

    例:

    int i, j;//逗号是一个列表分隔符
    for(i = 0, j = 5; i < j; i++, j--)//逗号运算符,被当做一个顺序点
    {
      pass    
    }

    注:逗号运算符的优先级是最低的。

    等待一段时间:编写延时循环

     1 #include<iostream>
     2 #include<ctime>
     3 int main()
     4 {
     5     using namespace std;
     6     cout << "CLOCKS_PER_SEC" << CLOCKS_PER_SEC << endl;
     7     float delay_s;
     8     cin >> delay_s;
     9     clock_t delay = CLOCKS_PER_SEC*delay_s;//常量CLOCKS_PER_SEC,定义了每秒钟的系统时间单位数
    10     clock_t start = clock();//返回程序开始执行后的系统时间
    11     while(clock()-start < delay);
    12     cout << "end" << endl;
    13     system("pause");
    14     return 0;
    15 }
    clock_t作为clock()返回类型的别名。
    C++定义别名的方式有两种:
    1. 预处理器
    #define BYTE char

    2. 使用关键字typedef来创建别名

    typedef char BYTE;

    typedef是更加的选择,定义变量时不需要原类型替换。

    循环和文本输入:

    读取char时,和读取其他类型一样,cin将忽略空格和换行符。

    cin.get(char)将会读取输入中的下一个字符,即使是空格。

    EOF结束输入:

    EOF为文件尾结束标志,EOF为-1,键盘输入时用组合键Ctrl+z模拟文件尾。

    当到达文件尾时设置两个标志位:eofbit和failbit,设置值位1 ,此时不再接收任何输入流。

    istream对象的成员函数eof()和fail()返回这两个标志位的状态(是否被设置)。

    istream对象的成员函数clear()可以重置这两个标志位。

     1 #include<iostream>
     2 
     3 int main()
     4 {
     5     using namespace std;
     6     char pc;
     7     cin.get(pc);
     8     //用ctrl+l组合的键盘输入来模拟文件尾EOF,检测到EOF后,两个标志位都被设置为1.
     9     while (cin.eof() == false) //eof()查看eofbit是否被设置
    10 //    while (cin.fail() == false) //fail()查看failbit是否被设置
    11     {
    12         cout << pc;
    13         cin.get(pc);
    14     }
    15 
    16     cin.clear();
    17 
    18     char *se = new char [20];
    19     cin >> se;
    20     cout << se << endl;
    21     delete [] se;
    22 
    23     system("pause");
    24     return 0;
    25 }

    C++与C的输入输出:

    ch = cin.get()的工作方式类似于C语言的getchar(),将字符编码作为int值返回。

    cin.get(ch)返回一个istream对象。

    cout.put(ch)类似于C语言的putchar(),只不过其出入参数为char,而不是int。

  • 相关阅读:
    KMP
    KMP算法的Next数组详解
    从头到尾彻底理解KMP
    通信协议:HTTP、TCP、UDP
    十大Intellij IDEA快捷键
    Java连接oracle数据库的两种常用方法
    Oracle 数据类型
    Oracle 数据库、实例、用户、表空间、表之间的关系
    Android中的Handler的机制与用法详解
    在Android开发中,定时执行任务的3种实现方法
  • 原文地址:https://www.cnblogs.com/sungnox/p/7588464.html
Copyright © 2020-2023  润新知