首页 > 编程语言 >软件开发入门教程网之C++ 引用

软件开发入门教程网之C++ 引用

时间:2023-01-09 16:34:19浏览次数:58  
标签:初始化 变量 软件开发 int double 入门教程 C++ 引用

引用变量是一个别名,也就是说,它是某个已存在变量的另一个名字。一旦把引用初始化为某个变量,就可以使用该引用名称或变量名称来指向变量。

​C++ 引用 vs 指针​

引用很容易与指针混淆,它们之间有三个主要的不同:

  • 不存在空引用。引用必须连接到一块合法的内存。
  • 一旦引用被初始化为一个对象,就不能被指向到另一个对象。指针可以在任何时候指向到另一个对象。
  • 引用必须在创建时被初始化。指针可以在任何时间被初始化。

​C++ 中创建引用​

试想变量名称是变量附属在内存位置中的标签,您可以把引用当成是变量附属在内存位置中的第二个标签。因此,您可以通过原始变量名称或引用来访问变量的内容。例如:

int i = 17;

我们可以为 i 声明引用变量,如下所示:

int&  r = i;
double& s = d;

在这些声明中,& 读作引用。因此,第一个声明可以读作 "r 是一个初始化为 i 的整型引用",第二个声明可以读作 "s 是一个初始化为 d 的 double 型引用"。下面的实例使用了 int 和 double 引用:

​实例​

#include <iostream>

using namespace std;

int main ()
{
// 声明简单的变量
int i;
double d;

// 声明引用变量
int& r = i;
double& s = d;

i = 5;
cout << "Value of i : " << i << endl;
cout << "Value of i reference : " << r << endl;

d = 11.7;
cout << "Value of d : " << d << endl;
cout << "Value of d reference : " << s << endl;

return 0;
}

当上面的代码被编译和执行时,它会产生下列结果:

Value of i : 5
Value of i reference : 5
Value of d : 11.7
Value of d reference : 11.7

引用通常用于函数参数列表和函数返回值。下面列出了 C++ 程序员必须清楚的两个与 C++ 引用相关的重要概念:

概念

描述

​把引用作为参数​

C++ 支持把引用作为参数传给函数,这比传一般的参数更安全。

​把引用作为返回值​

可以从 C++ 函数中返回引用,就像返回其他数据类型一样。

标签:初始化,变量,软件开发,int,double,入门教程,C++,引用
From: https://blog.51cto.com/u_15721717/5997518

相关文章

  • ​​软件开发入门教程网之​​C++ 信号处理
     信号是由操作系统传给进程的中断,会提早终止一个程序。在UNIX、LINUX、MacOSX或Windows系统上,可以通过按Ctrl+C产生中断。有些信号不能被程序捕获,但是下表所列......
  • 绿色环保又节能,软件开发居然也可以
    随着气候变化成为一个关键的全球问题,软件开发人员和DevOps专家也开始反思他们自己的行业,以帮助减少该行业对气候的影响。在这个大背景下,静态分析工具可以我们提供怎样的......
  • c++ opencv mfc基础入门
    参考文献:  计算机视觉面试c++ 字符串的按词倒序 C++;MFC点击弹出自定义对话框VC++基于MFC更新编辑框中的内容 MFC界面编程基础(11):静态文本框、命令按钮和编辑......
  • [c++实践]内存对齐与伪共享
    内存对齐与伪共享时间测试类该类会在后续的测试中用于运行时间测试。//public/timer.h#include<chrono>#include<iostream>#include<functional>structScopeTimer{......
  • C++编译问题,解决arm下链接静态库,引起的relocation R_AARCH64_ADR_PREL_PG_HI21 agains
    显示的完整错误如下:relocationR_AARCH64_ADR_PREL_PG_HI21againstsymbol`ZN2c43yml9free_implEPvmS1'whichmaybindexternallycannotbeusedwhenmakingasha......
  • 直播平台软件开发,input限制上传数量,规定图片上传数量
    直播平台软件开发,input限制上传数量,规定图片上传数量 /** *[fileCountCheck上传文件数量检测] *@param{[Object]}filesObj[文件对象|input] *@param{[Num......
  • C++面向对象程序设计
    目录第二章类和对象构造函数析构函数对象数组第三章深入理解类和对象3.5常对象与常成员3.6动态创建对象和释放对象3.7对象的生存期3.8程序实例第四章静态成员与友元......
  • C++ std::function 实现原理
    msvc预备知识参数类型,可以分为一元(unary)和二元(binary),这个概念很重要,gcc的实现里也用到。可以看到msvc里定义了三个_Arg_types:无参数类型;接受一个参数,一元;接受两个参......
  • C++ 返回值优化RVO
    目录按值返回返回值优化计算性构造函数关闭RVO参考返回值优化(ReturnValueOptimization,简称RVO)是通过对源代码进行转换、消除对象的创建来实现加速程序,提升程序性能的......
  • 【condition_variable】C++条件变量的原理和用法
    condition_variable简介condition_variable类是一个同步原语,与std::mutex一起使用,用于阻塞一个或多个线程,直到另一个线程修改一个共享变量(条件)并通知condition_variable。......