我是先学的C语言再学的C++,因此我直接接触的是和C语言不同的地方,有人说,C语言是C++的子集,相当于说,C++是C语言的扩展,C++实际读作C Plus Plus,因此我发现C++特有功能很多地方和C语言是类似,甚至就是将C语言的某些特性封装起来,我会在学习C++时记录下我的学习过程,我会持续更新这一个系列,敬请关注,另外我也会逐渐将这些程序发布到GitHub,尽管我知道这些程序没什么用,但我还是希望能用他们记录下我学习过程遇见的困难和相关的解决方案。
引用,也称为别名,是C++相较于C语言特有的一种特性,C也可以实现这种功能,不过之前我们是使用指针完成的,下载我们要学习使用引用实现,在首先我们要脱离语言去理解一下;
下面的表格描述了一个人的各种称呼,我们知道,任何名字都是用来指代一个事物,无论小名还是大名,亦或者是职位,其都是指代一个客观存在的实体,一个人。
种类名称小名人类张三小三小狗黄黄
小黄在c++中,其结果就如下表了;
种类名称小名整数变量名引用名看起来似乎并不难,那么我们继续来看看引用的使用方法吧!
#include <iostream> //引用 using namespace std; //声明使用标准命名空间 int main() //主函数开始 { double x = 100; //定义一个变量,并为变量赋值 double& y = x; //定义一个引用变量并赋值 double* z = &x; //定义一个指针变量并赋值 test(x); //调用test函数 test2(z); //调用test2函数 } //主函数结束 void test(double &); //函数定义,这将传递引用变量 void test2(double*); //函数定义,这将传递指针变量 void test(double& a) //函数实现 { cout << a << endl; //打印出来 a++; //对变量进行操作 cout << a << endl; //再打印一遍 }void test2(double* a) //函数实现 { cout << *a << endl; //打印出来 (*a)++; //对变量进行操作(注意,在这里有可能出现优先级的问题,因此要额外加一个括号,表示优先执行* cout << *a << endl; //打印出来 } //注释: // 引用变量和指针变量非常像,类似的如起小名的过程,其使用方法为: // 引用类型 引用变量名称 & 引用的变量 // 可理解为: // 性别 小名 & 大名上面的程序并不难理解,取其一小部分来说,如下:
性别 小名 & 大名其实就是使用方法,如有一个int类型的变量X,那么我们要创建一个引用它的引用变量,或者指向它的指针变量,就需要:
int love; love = 1; double& y = love; //定义一个引用变量并赋值 double* z = &love; //定义一个指针变量并赋值