这篇文章主要介绍“C++变量引用的概念是什么”,在日常操作中,相信很多人在C++变量引用的概念是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”C++变量引用的概念是什么”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
本篇介绍的变量引用与之前介绍的指针不是同一概念,它们有本质的区分:
1)不存在空引用。引用必须连接到一块合法的内存。
2)一旦引用被初始化为一个对象,就不能被指向到另一个对象。指针可以在任何时候指向到另一个对象。
3)引用必须在创建时被初始化。指针可以在任何时间被初始化。
下面代码介绍其应用场景,供参考
/*
* Author:W;
* 变量引用:是已定义声明的变量的“别名”
* 引用与指针的区别:
* 1)不存在空引用。引用必须连接到一块合法的内存。
* 2)一旦引用被初始化为一个对象,就不能被指向到另一个对象。指针可以在任何时候指向到另一个对象。
* 3)引用必须在创建时被初始化。指针可以在任何时间被初始化。
*/
//引入头文件:头文件包含了程序中必需的或有用的信息【单行注释】
#include <iostream>
//命名空间使用
using namespace std;
//交换函数声明
void swap(int& a, int& b);
//设置数组特定位置的值
int& setArrValue(int* array, int index);
//main程序执行入口函数
int main()
{
//声明变量
int a = 3;
//声明引用变量
int& b = a;
cout << "=====引用变量=====" << endl;
cout << "a=" << a << endl;
cout << "b=" << b << endl;
cout << "=====引用变量作为函数参数=====" << endl;
int c = 4;
int d = 10;
cout << "交换之前 :c = " << c << " d = " << d << endl;
swap(c, d);
cout << "交换之后 :c = " << c << " d = " << d << endl;
cout << "=====函数返回引用=====" << endl;
//【返回一个引用时,要注意被引用的对象不能超出作用域。所以返回一个对局部变量的引用是不合法的,但是,可以返回一个对静态变量的引用。】
int arr[3] = { 1,4,7 };
cout << "改变前的值" << endl;
for (int i = 0; i < 3; i++)
{
cout << "arr[" << i << "] = " << arr[i] << endl;
}
setArrValue(arr,1) = 5;
cout << "改变后的值" << endl;
for (int i = 0; i < 3; i++)
{
cout << "arr[" << i << "] = " << arr[i] << endl;
}
}
//改变数组特定位置的值
int& setArrValue(int* array,int index)
{
int& ref = array[index];
return ref;
}
/// <summary>
/// 交换函数声明
/// </summary>
/// <param name="a"></param>
/// <param name="b"></param>
void swap(int& a, int& b)
{
int temp;
temp = a; /* 保存地址 a 的值 */
a = b; /* 把 b 赋值给 a */
b = temp; /* 把 a 赋值给 b */
}
运行结果如下:
到此,关于“C++变量引用的概念是什么”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。