zoukankan      html  css  js  c++  java
  • 学习C++.Primer.Plus 5 循环和关系表达式

    • C++将赋值表达式的值定义为左侧成员的值
    • 赋值操作符是自右向左结合的
    • cout.setf(ios:: boolalpha);//调用设置标记,命令cout输出true或false,而非1或0.
    • 任何表达式加上分号都会成为语句,但反过来不一定成立:
      int n;

    顺序点:程序执行过程中的一个点,在这里,在进行下一步之前将确保对所有的副作用进行了评估。

    完整表达式:不是另一个表达式的子表达式(没有任何表达式是它的父表达式)。比如下面的整个表达式是一个表达式,其中的两个子表达式都不是完整表达式:

    y = (4 + x++) + (6 + x++);//完整表达式结束后对所有副作用进行了评估,在子表达式(4+ x++)完成后并不一定对x进行了评估,结果有歧义,因此应避免这么写。
    • 任何完整的表达式末尾都是一个顺序点。
    • 可以使用递增/减操作字符型。
    • 前缀递增/减 和 解除引用 优先级相同(自右到左进行结合), 后缀递增/减 要高于 解除引用。
      *++pt;//pt 指针先自+1再解除引用,指针改变
      ++*pt;//pt指针解除引用后的值自加1
      (*pt)++;//pt指针解除引用后的值自加1
      *pt++;//pt 指针先自+1再解除引用,指针改变
    • ","操作符允许将两个表达式放到C++只允许放一个表达式的地方。
    • ","操作符是一个顺序点,且","表达式的值是表达式第二部分的值。
    • ","操作符在所有操作符中的优先级最低。
    • 如果在for循环内声明内部变量tmp,则每次循环都会被分配和释放,这比在循环前声明要慢一些。
    • strcmp(str1, str2)比较系统顺序:C++将C-风格字符串视为地址,因此不能用“==”比较。1在2后,>0。
    • 如果比较的两个字符串对象中至少有一个string对象,则可以使用"==","!="。
    • string类对象不使用空白来标记末尾, C-风格和char数组表示的字符串用空白标记。
    • 计时函数:在头文件ctime中,clock_t clock();

        符号常量CLOCKS_PER_SEC:每秒包含的clock_t数。

    • 类型别名:C++中声明类型别名的两种方法:

        1.#define mynamedchar char;会出现下面的问题:

    #define floatPointer float *;
    floatPointer pa, pb;//编译时会转换成float * pa, pb。只声明了一个指针    

        2.typedef char mychar mynamedchar;不会出现上述问题。

    • 文件尾条件

    windows使用cntr + Z 和 回车键 模拟文件尾

    检测到EOF时,cin将 eofbit 和 failbit 设置为1。并且会停止输入,此时可以调用cin.clear()恢复输入。

    cin.eof()---->最后一次的eofbit为1就返回true

    cin.fail()---->最后一次的eofbit 和 failbit 都1才返回true

    • cin.get(char)返回一个cin对象,istream提供了一个将istream对象转换为bool的函数。当cin出现在需要bool 的时候,会自动转换成bool,读取成功返回true,失败返回false。
    • cin.get()返回输入中的下一个字符,将字符编码作为int值返回,可以使用cout.put(char)函数输出字符。
    • 达到EOF时cin.get()将返回EOF(iostream中定义的,一般为-1);而cin.get(char)则不会将该特殊值赋给char,因此不会导致cin.get()赋值的类型问题。
  • 相关阅读:
    基于spec评论作品
    Alpha版发布
    软件工程第七次作业
    软件工程第六次作业
    软件工程第五次作业
    django-rest-framework笔记-序列化篇
    django restframework系列笔记
    rpyc 文件监控
    python subprocess select 读取
    Python 多线程 类和方法
  • 原文地址:https://www.cnblogs.com/yuantf/p/3171427.html
Copyright © 2011-2022 走看看