C++学习笔记Day1

发布时间 2023-10-15 21:24:53作者: meTMwho

有关const的一些事

1.const对象必须初始化,因为const对象一旦创建,其值不能再被改变。

2.const对象是常量,因此可以赋予其字面值。

3.普通变量默认支持多文件下共享,而const默认不支持,需要在定义和声明是都加上关键字extern才能在多个文件中使用。

4.所谓“常量引用”指的是“对const的引用”,而非该引用本身是常量,因为引用不算对象。

5.常量引用初始化可以使用任意表达式作为初始值,只要表达式的结果可以转换成引用的类型即可。

6.对const的引用可以绑定非常量,但无法改变非常量的值。

7.const <type> *ptr 是指向常量的指针,无法修改指向对象的值,属于底层const;<type> *const ptr 是常量指针,意思是指针本身是常量,一旦初始化完成,其保存的地址将不允许被改变,属于顶层const。

8.常量表达式指的是在编译过程中就能得到结果的表达式,可以用“constexpr+常量表达式”的形式来声明一个常量;constexpr定义的指针属于顶层const。

类型别名的两种办法

1.typedef double w;

2.using dou = double;

关于auto

1.auto可以根据表达式推断变量类型,使用auto声明多个变量需要保证其都从属于相同的基本数据类型。

2.auto会自动忽略顶层const,保留底层const,可以通过在auto前加上const来保留顶层const。

关于declitype

暂时没完全搞明白,先不写了

关于头文件保护符

#ifdef 当且仅当变量一定义时为真,#ifndef 当且仅当变量未定义时为真,一旦其为真就会执行后续操作,直到遇到#endif,此方法可以防止由于引入自定义头文件而导致的重复引用。