1.const 对象必须初始化,当以编译时初始化的方式定义时,编译器将在编译过程中把用到该变量的地方替换成对应值;默认情况下仅在文件内有效,如需使多个文件使用同一个const变量,不管声明还是定义都添加extern关键字。
2.顶层const表示指针本身是个常量 : int *const p = &i;
3.对象拷贝时,顶层const不受影响;对于底层const,非常量可以转换为常量,反之不行
4.auto 会忽略引用和顶层const,decltype会保留。另外,如果表达式的内容是解引用或加括号的变量,decltype得到引用类型
当数组作为auto的初始值,推断得到的类型是指针;decltype时,上述转换不会发生。