美文网首页
第2章 变量和基本类型

第2章 变量和基本类型

作者: b036101467d7 | 来源:发表于2019-05-19 17:37 被阅读0次

    1. 如果数值超过了int的范围,用long long;在算数表达式中不要使用char 或 bool;执行浮点运算用double

    2. 当一个算数表达式中既有无符号数又有int时,那个int值将转换成无符号数。切勿混用带符号类型和无符号类型

    3.对象初始化值:列表初始化;string规定如果没有指定初值则生成一个空串;建议初始化每一个内置类型的变量

    4. 如果想声明一个变量而非定义它,就在变量名前添加关键字extern,而且不要显示的初始化变量;变量能且只能被定义一次,但可以被声明多次

    5. C++是一种静态类型语言,即标识符需要先声明再使用

    6. 当你第一次使用变量时,再定义它,定义尽量靠近使用的地方。

    7. 引用必须被初始化,因为引用无法重新绑定到另一个对象;引用不是对象,因此不能定义引用的引用

    8. 指针的值应属下列4种状态之一:

    1)指向一个对象

    2)指向紧邻对象所占空间的下一个位置

    3)空指针,意味着指针没有指向任何对象

    4)无效指针,也就是上述情况之外其他值

    9. 现在的C++程序最好使用nullptr,尽量避免使用NULL

    10. void *是一种特殊的指针类型,可以存放任意对象的地址

    11. 面对一条比较复杂的指针或引用的声明语句时,从右向左阅读有助于弄清楚真实含义。

    12. const对象必须初始化

    const int i = get_size();//运行时初始化

    const int j = 42; //编译时初始化

    13. constexpr 变量:由编译器验证变量是否是一个常量表达式。声明为constexpr的变量一定是一个常量,而且必须用常量表达式初始化。

    constexpr int mf = 20;

    constexpr int limit = mf + 1;

    constexpr int sz = size();//只有size()是一个constexpr函数时,才是一条正确的声明语句。

    14. typedef 与using 用于类型别名:

    typedef double wages;

    typedef wages base, *p;

    using SI = Sales_item;

    15. auto类型说明符:用它可以让编译器为我们分析变量的类型

    const int ci = 0;

    auto &g = ci;//g是一个整形常量引用

    auto &h = 42;//错误:不能为非常量引用绑定字面值

    const auto &j = 42;//正确:可以为常量引用绑定字面值

    15. decltype

    编译器分析表达式的类型,但不实际计算表达式的值

    decltype(f()) sum = x; //sum的类型就是函数f的返回类型

    const int ci = 0, &cj = ci;

    decltype(ci) x = 0;//x的类型时const int

    decltype(cj) y = x;//y的类型时 const int &

    decltype(cj) z;//错误:z是一个引用,必须初始化

    int i = 42, *p = &i, &r = i;

    decltype(r+0) b;//正确:加法结果是int,因此b是一个int

    decltype(*p) c;//错误:c是int &,必须初始化

    因为r是引用,因此decltype(r)的结果是引用类型

    如果表达式的内容是解引用,则decltype将得到引用类型

    decltype(*p)的结果就是int &, 而非int

    decltype((variable)) 双层括号的结果永远是引用,而decltype(variable)的结果是variable的类型。

    变量加上括号相当于表达式。

    16. 类通常定义在头文件中,且头文件名字与类名相同

    17. 预处理变量无视C++语言中关于作用域的规则。

    相关文章

      网友评论

          本文标题:第2章 变量和基本类型

          本文链接:https://www.haomeiwen.com/subject/qpjqzqtx.html