C++引用
1. 什么是引用
引用变量是一个别名,也就是说,它是某个已存在变量的另一个名字。一旦把引用初始化为某个变量,就可以使用该引用名称或变量名称来指向变量。
2. C++ 引用 vs 指针
引用很容易与指针混淆,它们之间有三个主要的不同:
- 不存在空引用。引用必须连接到一块合法的内存。
- 一旦引用被初始化为一个对象,就不能被指向到另一个对象。指针可以在任何时候指向到另一个对象。
- 引用必须在创建时被初始化。指针可以在任何时间被初始化。
我们可以为 i 声明引用变量,如下所示:
int& r = i;
double& s = d;
3. 总结:
当我们用引用类型来声明变量时,如果用已经引用的引用类型变量时,这个引用变量类型会指向引用大的地方,修改它时会改变原来的值。
c++内联函数
1.什么是内联函数
- 声明时使用关键字 inline。
- 编译时在调用处用函数体进行替换,节省了参数传递、控制转移等开销。
- 注意:n 内联函数体内不能有循环语句和switch语句; n 内联函数的定义必须出现在内联函数第一次被调用之前; n 对内联函数不能进行异常接口声明。
实例:
#include <iostream>
using namespace std;
const double PI = 3.14159265358979;
inline double calArea(double radius) {
return PI * radius * radius;
}
int main() {
double r = 3.0;
double area = calArea(r);
cout << area << endl;
return 0;
}
constexpr函数
constexpr函数语法规定
constexpr修饰的函数在其所有参数都是constexpr时,一定返回constexpr;
函数体中必须有且仅有一条return语句。
constexpr的变量的值必须是编译器在编译的时候就可以确定的。
constexpr函数举例
constexpr int get_size() { return 20; }
constexpr int foo = get_size(); //正确:foo是一个常量表达式
带有参数值的函数