c++学习笔记

我是个普通的大一学生,在自学,肯定会有很多错误和理解不到位的地方,如果有大佬看到我的错误可以的话烦请指正我的问题,感谢大家。
const:
const+值传递:无意义
const+指针传递,可以防止指针被意外篡改
const+引用传递:可以代替值传递

对于顶层和底层const我的理解是顶层const的对象不可变,而底层的const对象可变,声明引用的const都是底层const。

关于constexpr,我的理解是constexpr包含了const的特性,只要是constexpr就是const,但是只有是常量表达式的const才是constexpr,感觉自己理解的很不到位。

auto:
我理解的是可以自动分析表达式所属的类型,但是有以下几个注意点:1.auto变量要在定义时就初始化
2.auto可以在一条语句中声明多个变量,但是一条语句中所有变量的初始数据类型必须一样
register:
希望编译器定义在寄存器中而不是内存中的局部变量(具体有编译器判断)
虽然是为了优化性能但是不要过早优化
static:
在程序的生命周期内保持局部变量的存在,不需要在每次它进入和离开作用域时进行创建和销毁
static也可用于全局变量,此时会将变量的作用域限制在声明它的文件内
extern:
告诉编译器这个变量在别的地方定义了,链接的时候可以找到

作用域和生命周期:
作用域是程序的一个区域
局部变量:在函数或一个代码块内部声明的变量
形式参数:在函数参数的定义中声明的变量
全局变量:在所有函数外部声明的变量

内联函数:
调用时并不通过函数调用的机制而是通过将函数体直接插入调用处(编译阶段)
内联函数的函数体一般不能过大,否则,一般的编译器会放弃内联

你可能感兴趣的:(c++学习记录,c++,编程语言)