g++ -o name name.cpp
编译命令 , -o hello是编译器参数,指定了可执行文件的文件名
echo $? 获取刚才结束的程序的返回值
文件重定向 ./文件名 <输入文件> 输出文件
for example: ./file<in>out
DAY2
extern //声明,可以跨文件使用变量
extern const int a
const int *p;//可以改变指针的指向,但不能改变指针所指位置的值(p是指向常量的指针)
int *const p;//不能改变指针的指向,但可以改变指针所指位置的值(p是常量指针)
const int *const p;//既不能改变指针的指向,也不能改变指针所指位置的值(p是指向常量的常量指针)
DAY3
声明为constexpr的变量一定是一个常量,且必须用常量表达式初始化
一个constexpr指针的初始值必须是nullptr或者0或者存储于某个固定地址中的对象
函数体内定义的变量"一般"并非存放在固定的地址中,因此constptr不能指向这样的变量
constptr声明中如果定义了一个指针,限定符仅对指针有效,与指针所指的对象无关
指针本身是个常量称为 顶层const
指针指向一个常量称为 底层const
当执行对对象的拷贝操作时 顶层const不受影响
而底层const却会带来限制 拷入和拷出的对象必须具有相同的底层const资格
auto 一般会忽略掉顶层const,并保留底层const
如果希望推断出的auto 类型是一个顶层const需 const auto
auto 和 decltype 区别
1 auto 忽略顶层const decltype 保留顶层const
2 遇到引用,auto推断出原有类型,decltype推断出引用
3 对解引用操作 auto推断出解引用操作,decltype推断出引用
4 auto会实际执行,decltype不会执行