大学毕业后,发觉自己混了四年,竟然至于一事无成。每个人都有对生活选择的权利,可惜自己并没有行使自己的权利,浑浑噩噩中,到如今地步。此文在于提醒自己,挫败和失落并不可怕,可怕的是自己放弃自己。我不会选择放弃,所以开始了从自己大学挂掉了第一门课:C++,然后从头开始。
空持百千偈,不如读书去。
1. 内联函数
为了理解内联函数的意义,首先需知道相对于内联函数的常规函数的执行过程:
当程序执行到常规函数的调用指令时,函数调用后会立即存储该指令的内存地址,将该函数参数复制到堆栈中,然后进入函数,执行完后,跳回的地址被保存在指令处。来回跳跃并存储,是需要消耗一定的存储空间的。
内联函数的执行过程采用替换函数(同样需执行的函数代码)
的方式来优化常规函数的调用过程,以节省时间,但需占用更多内存,内联函数常用于该函数经常被调用的情况。
eg.
#include
using namespace std;
inline double fmath(double x)
{
return x*x+x;
}
int main()
{
double a, b;
double c=12.0;
a=fmath(5.0);
b=fmath(4.2+5.1);
cout<<"a = "<
<<", b = "<<
可见内联函数同样是按值传递。
2.引用变量定义
对于引用变量,需要理解&符号在声明引用的作用。&在此是类型标示符的一部分,类似指针的声明char * ,同样的int &是指向int的引用。
eg.
#include
using namespace std;
int main()
{
int rate = 125;
int & ref_rate = rate; //定义一个引用ref_rate,在声明引用变量时,必须对其进行初始化
cout<<"rate = "<
从程序的结果来看,对引用进行赋值时,其实相当于对被引用的变量进行赋值。但此时ref_rate和ifchange的地址是不同的。