欢迎光临散文网 会员登陆 & 注册

小人物学个大习(71-80)

2023-07-05 01:08 作者:白羽腰间插  | 我要投稿
C++ primer
  1. C++11标准,允许将变量声明为constexpr类型,以便由编译器来验证是否为常量表达式。声明为constexpr的变量一定是一个常量,而且必须用常量表达式初始化:
    constexpr int mf =20 , limit = mf+1;

  2. constexpr数据类型
    1.常用字面值类型
    2.指针的初始值为nullptr或0,或者是储存于一个固定地址中的对象
    3.允许constexpr绑定到定义在函数体之外的有固定地址的变量

  3. const int p =nullptr;
    constexpr intq = nullptr;
    p是一个指向常量的指针,q是一个常量指针,constexpr把它所定义的对象置为了顶层const

  4. 类型别名,typedef double wages;

  5. 新标准规定了一种新方法,使用别名声明来定义类型的别名:
    using SI= Sales_item;
    SI 是 Sales_item 的同义词

  6. typedef char *pstring;
    const pstring cstr = 0; cstr是指向char的常量指针,指针是常量
    const char *ps;ps是一个指针,它的对象是指向char的常量

  7. C++11引入了auto类型说明符,auto通过初始值来推算变量类型,显然,auto定义的变量必须有初始值
    auto item = val1+val2;

  8. 1.编译器以引用对象的类型作为auto类型。
    2.auto一般会忽略掉顶层const,同时底层const会保留下来
    const int ci =i,&cr=ci;
    auto b=ci;b是一个整数
    auto c =&ci;c是一个指向整数常量的指针

  9. decltype类型说明符
    C++11还引入了decltype 类型说明符,它的作用是选择并返回操作数的数据类型。
    decltype(f()) sum =x; sum的类型就是函数f的返回类型
    decltype(ci) x=0;如果decltype使用的表达式是一个变量,则返回该变量的类型,包括顶层和底层const

  10. decltype 返回类型
    1.如果decltype使用的表达式不是一个变量,则decltype返回表达式结果对应的类型
    int r =4,*p=&r;
    decltype(r+0)b;b是一个为初始化的int
    2.decltype(*p)c;错误,c是int&,必须初始化
    如果表达式是解引用操作,则decltype将得到引用类型:解引用指针可以得到指针所指的对象,而且还能给这个对象赋值,因此decltype(*p)的结果就是 int&,而非int
    3.decltype((variable))的结果永远是引用,而decltype(variable)的结果只有当variable本身是个引用时才是引用

多少要学一点习。

2023年7月05日


小人物学个大习(71-80)的评论 (共 条)

分享到微博请遵守国家法律