【C++】引用变量--1.如何创建引用变量
【摘要】 目录
引用变量
1.1 创建引用变量
引用变量的程序示例
程序运行结果
引用变量
引用是对已定义的变量的别名,比如一个人的大名和小名,这指的都是一个人。区别指针与引用变量
1.1 创建引用变量
比如要将rodents作为rats变量的别名,可以这样做:
int rats;
int & rodents =rats;
注意,&这里不是地址运算...
目录
引用变量
引用是对已定义的变量的别名,比如一个人的大名和小名,这指的都是一个人。区别指针与引用变量
1.1 创建引用变量
比如要将rodents作为rats变量的别名,可以这样做:
int rats;
int & rodents =rats;
注意,&这里不是地址运算符,而是类型标识符一部分,int & 指的是指向int 的引用
引用变量的程序示例
//firstref.cpp -- defining and using a reference
//引用
#include<iostream>
int main()
{
using namespace std;
int rats = 101;
int & rodents = rats;//rodents这里是rats的引用
cout << "--------------------" << endl;
cout << "原始的" << endl;
cout << "rats = " << rats;
cout << ", rodents = " << rodents << endl;
cout << "--------------------" << endl;
cout << "rodents++后的" << endl;
rodents++;
cout << "rats = " << rats;
cout << ", rodents = " << rodents << endl;
cout << "--------------------" << endl;
cout << "显示其地址" << endl;
cout << "rats address = " << &rats;
cout << ", rodents address = " << &rodents << endl;
return 0;
}
程序运行结果
必须在声明引用变量时进行初始化,这点和指针不一样
如果非要拉上关系,引用更接近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;
也就意味着可以通过初始化声明来设置引用,但不能通过赋值来设置。
文章来源: kings.blog.csdn.net,作者:人工智能博士,版权归原作者所有,如需转载,请联系作者。
原文链接:kings.blog.csdn.net/article/details/90436997
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)