目录
引用变量
1.1 创建引用变量
引用变量的程序示例
程序运行结果
引用是对已定义的变量的别名,比如一个人的大名和小名,这指的都是一个人。区别指针与引用变量
比如要将rodents作为rats变量的别名,可以这样做:
int rats;
int & rodents =rats;
注意,&这里不是地址运算符,而是类型标识符一部分,int & 指的是指向int 的引用
必须在声明引用变量时进行初始化,这点和指针不一样
如果非要拉上关系,引用更接近const指针,必须在创建时进行初始化,一旦关联,就一直效忠。
int & rodents =rats;
实际上是下述代码的伪装
int * const pr = &rats;
试图将变量的引用改变的程序示例
// secref.cpp -- defining and using a reference #include<iostream> int main() { using namespace std; int rats = 101; int & rodents = rats; //引用 cout << "--------------------" << endl; cout << "原始的" << endl; cout << "rats = " << rats; cout << ", rodents = " << rodents << endl << endl; cout << "--------------------" << endl; cout << "显示其原始地址" << endl; cout << "rats address = " << &rats; cout << ", rodents address = " << &rodents << endl << endl; int bunnies = 50; rodents = bunnies;//这里可以改变引用吗? cout << "--------------------" << endl; cout << "观测是否发生了改变" << endl; cout << "bunnies = " << bunnies; cout << ", rats = " << rats; cout << ", rodents = " << rodents << endl << endl; cout << "--------------------" << endl; cout << "显示其现在的地址" << endl; cout << "bunnies address = " << &bunnies; cout << ", rodents address = " << &rodents << endl << endl; return 0; }咋一看,改变成功了,但是发现bunnies地址与rats和rodents的地址并不同,这是因为上述语句等效于:
rats = bunnies;
也就意味着可以通过初始化声明来设置引用,但不能通过赋值来设置。
人工智能博士 认证博客专家 985AI博士 AI专家 博客专家 王博Kings,985AI博士在读,博客专家,华为云专家,是《机器学习手推笔记》、《深度学习手推笔记》等作者,我的微信:Kingsplusa,欢迎交流学习;在人工智能、计算机视觉、无人驾驶等具有丰富的经验。