c++ Primer Plus (第五章)

第五章

1.for循环

  • for循环是先判断再执行
  • 测试语句为空,默认为true,如果有两个判断条件,那么俩个条件为或,不是并,如果要在外循环使用内循环的循环变量,在外循环定义即可(for(int i=0,j….)for(j=0;)就可以在外部纪录j)
  • c++11新增了基于范围的for循环,即
    1
    2
    3
    double p[5];
    for(double x:p)
    cout<<x<<endl;
  1. cout输出bool
  • <<(输出)的运算优先级比运算符高,所以如果希望输出运算后的值,最好用括号括起来
  • c++会把bool值转换位int ,如果希望为bool最好前面加上
    cout.setf(ios_base::boolalpha)
  • 循环体执行完成以后才会对表达式进行更新,即执行for循环中第三条语句

3.字符串比较

  • C语言风格:,由于常量字符串是地址,所以用直接比较是错的,应该使用strcmp函数

    1
    2
    3
    4
    char a[8]="world";
    if(a=="world")//all false,
    //应该改为if(strcmp(a,"world"))
    // 如果strcmp比较出字符串不等返回1,相等为0
  • c+风格如果要比较的都是string对象(或者至少左边是一个string对象),直接用==判断