【C++】C++ 引用详解 ⑧ ( 普通引用与常量引用 | 常量引用概念与语法 )

这篇具有很好参考价值的文章主要介绍了【C++】C++ 引用详解 ⑧ ( 普通引用与常量引用 | 常量引用概念与语法 )。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。





一、普通引用




1、概念说明


之前的 【C++】C++ 引用详解 ① ~ ⑦ 博客中 , 讲解的都是 普通引用 , 也就是 将 普通变量 赋值给 引用 , 过程如下 : 先定义 普通变量 a , 然后定义 已存在变量 a 的引用 b ;

这里的 引用 b 就是 普通引用 ;

// 定义变量 a
int a = 10;

// 定义变量 a 的引用 b
int& b = a;



2、代码示例 - 普通引用


普通引用代码示例 :

// 包含 C++ 头文件
#include "iostream"

// 使用 std 标准命名空间
//		该命名空间中 , 定义了很多标准定义
using namespace std;

// 导入 C 头文件
#include <stdio.h>

int main()
{
	// I . 普通引用
	// 定义变量 a
	int a = 10;

	// 定义变量 a 的 普通引用 b
	int& b = a;

	// 打印 普通引用 b 的值
	printf("b = %d\n", b);

	// 修改普通引用 b 的值
	b = 20;

	// 打印 普通引用 b 的值
	printf("b = %d\n", b);


	// 控制台暂停 , 按任意键继续向后执行
	system("pause");
    return 0;
}

执行结果 :

b = 10
b = 20
Press any key to continue . . .

【C++】C++ 引用详解 ⑧ ( 普通引用与常量引用 | 常量引用概念与语法 ),C++,c++,引用,普通引用,常量引用,原力计划





二、常量引用




1、常量引用引入


与 变量引用 相对的就是 常量引用 ;

  • 通过 普通引用 , 可以修改 变量的值 ;
  • 常量引用 , 是不可修改的 , 声明一个 普通变量 的 常量引用 , 之后不再使用 变量 , 转而使用 该 常量引用 , 相当于 将 变量 转为了 常量 ;

常量引用 可以令 变量的引用 转为 常量 ;不能通过 常量引用 修改 变量 ;

如果修改 常量引用 的值 , 编译时会报错 :

error C3892: “b”: 不能给常量赋值

2、常量引用概念与语法


在 C++ 语言中 , " 常量引用 " , 英文名称为 Const Reference , 是一种引用类型 , 另外一种引用就是 " 普通引用 " ;

使用 " 常量引用 " 可以将一个变量的值传递给一个函数的 常量引用形参 , 可以保证该变量值不会在函数内部被修改 ;

" 常量引用 " 常用于如下场景 :

  • 作为函数形参
  • 作为函数返回值
  • 定义对象成员

常量引用 语法 :

const T& variable_name = value;
  • T 是 常量引用 的类型名称 , 如 : int , string ;
  • variable_name 是 常量引用 的名称 , 调用该常量引用 , 不可修改 value 变量的值 ;
  • value 是 被引用的 变量 , 调用该变量可以修改变量的值 ;

2、代码示例 - 常量引用不可修改


在下面的函数中 , 先声明了 普通变量 a ,

然后定义了 变量 a 的 常量引用 b ,

常量引用 b 其 本质就是一个常量 , 通过 常量引用 b 可以获取 变量 a 的值 , 但是无法修改 变量 a 的值 ;

如果强行通过 常量引用 b 修改 变量 a 的值 , 则会报错 :

error C3892: “b”: 不能给常量赋值

错误代码示例 :

// 包含 C++ 头文件
#include "iostream"

// 使用 std 标准命名空间
//		该命名空间中 , 定义了很多标准定义
using namespace std;

// 导入 C 头文件
#include <stdio.h>

int main()
{
	// II . 常量引用
	// 定义变量 a
	int a = 10;

	// 定义变量 a 的 常量引用 b
	const int& b = a;

	// 打印 常量引用 b 的值
	printf("b = %d\n", b);

	// 修改 常量引用 b 的值
	// 报错 : error C3892: “b”: 不能给常量赋值
	b = 20;


	// 控制台暂停 , 按任意键继续向后执行
	system("pause");
    return 0;
}

执行结果 :

已启动生成…
1>------ 已启动生成: 项目: HelloWorld, 配置: Debug Win32 ------
1>hello_world.cpp
1>D:\002_Project\006_Visual_Studio\HelloWorld\HelloWorld\hello_world.cpp(24,2): error C3892: “b”: 不能给常量赋值
1>已完成生成项目“HelloWorld.vcxproj”的操作 - 失败。
========== 生成: 成功 0 个,失败 1 个,最新 0 个,跳过 0==========

【C++】C++ 引用详解 ⑧ ( 普通引用与常量引用 | 常量引用概念与语法 ),C++,c++,引用,普通引用,常量引用,原力计划文章来源地址https://www.toymoban.com/news/detail-677767.html

到了这里,关于【C++】C++ 引用详解 ⑧ ( 普通引用与常量引用 | 常量引用概念与语法 )的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【是C++,不是C艹】 引用的概念 | 引用的使用 | 引用与指针的区别

    💞💞 欢迎来到 Claffic 的博客 💞💞   👉  专栏: 《是C++,不是C艹》👈 前言: 前面带大家学习了函数重载等C++基础,这期继续C++基础的学习:引用。 注: 你最好是学完了C语言,并学过一些初阶的数据结构。 (没有目录) ヽ( ̄ω ̄( ̄ω ̄〃)ゝ  不知道大家听没听过这个梗

    2024年02月03日
    浏览(38)
  • Java和C++中的引用概念

    Java中的引用 在Java中,所有的对象都是通过引用来访问的。这些引用类似于C++中的指针。当你创建一个对象时,Java会在堆内存中为该对象分配空间,并返回一个指向该对象的引用。你可以使用这个引用来访问和操作对象。 例如: java Person person = new Person(\\\"John\\\"); 在这个例子中

    2024年02月05日
    浏览(33)
  • 【C++】C++ 引用详解 ⑦ ( 指针的引用 )

    指针的引用 效果 等同于 二级指针 , 因此这里先介绍 二级指针 ; 使用 二级指针 作为参数 , 可以实现如下功能 : 动态内存管理 : 借助二级指针 , 可以在函数中分配或释放内存 ; 如 : 创建一个动态数组或调整现有数组的大小 , 在函数中需要一个指向指针的指针作为参数 , 以便修

    2024年02月11日
    浏览(37)
  • 【C++】C++入门基础:引用详解

    本篇继续分享关于C++入门的相关知识,有关命名空间、缺省参数和函数重载的部分欢迎阅读我的上一篇文章【C++】C++入门基础详解(1)_王笃笃的博客-CSDN博客 继续我们的学习 在C语言中我们接触过指针,很多人都或多或少为他感到头痛过,很多C语言的使用者包括创始人都觉

    2024年02月10日
    浏览(39)
  • 【C++】异常处理 ① ( 异常概念引入 | 抛出异常语法 | 捕获异常语法 | 异常捕获流程 | 异常处理代码示例 )

    异常是一种 特殊的程序流控制机制 , 用于处理程序中可能出现的错误或异常情况 ; 当程序执行错误时 , 由 throw 抛出异常 , 并即跳转到相应的异常处理程序中 ; 如果没有适当的异常处理程序处理该异常 , 程序会崩溃终止 ; 异常与函数对比 : 函数 是一种 以 栈结构 展开的

    2024年02月04日
    浏览(49)
  • 【详解C++中的引用】

    引用就是给一个变量取别名。 注意:这个引用不会新开辟一块空间,而是和原来的变量公用一块空间。 举个例子:李逵,在家称为\\\"铁牛\\\",江湖上人称\\\"黑旋风\\\"。 引用规则: 引用实体类型++引用别名 = 引用实体。 比如下面: 上面代码为例: 引用对象类型是int + + 引用别名(

    2023年04月22日
    浏览(30)
  • C++中引用详解!

    本文旨在讲解C++中引用的相关操作,以及引用的一些注意事项!搬好小板凳,干货来了! 何谓引用呢?引用其实很容易理解,比如李华这个同学,他因为很调皮,所以被老师起了个别名叫小孬,那么假如你问小孬作业写完了么,小孬说写完了,那么本质上是李华写完了作业,

    2024年02月09日
    浏览(30)
  • 【C++】引用详解

    在学习C语言时,我们通常会遇到两个数交换的问题,为了实现这一功能,我们会编写一个经典的Swap函数,如下所示: 然而,这个Swap函数看起来可能有些繁琐,需要使用指针和解引用操作符。相比之下,C++引入了 引用 的概念,使得代码更为简洁:(这两个函数还构成了函数

    2024年02月03日
    浏览(38)
  • Golang之路---02 基础语法——常量 (包括特殊常量iota)

    常量 iota iota是Golang语言的常量计数器,只能在常量表达式中使用 iota在const出现时将被重置为0,const中每新增一行常量声明将使iota计数一次 输出结果: 注: iota是const语句块中的行索引,而不是变量索引,其计数只与const语句块中的行数相关

    2024年02月15日
    浏览(37)
  • 详解 C++ 左值、右值、左值引用以及右值引用

    左值是一个表示数据的表达式,比如: 变量名、解引用的指针变量 。一般地,我们可以 获取它的地址 和 对它赋值 ,但被 const 修饰后的左值,不能给它赋值,但是仍然可以取它的地址。 总体而言,可以取地址的对象就是左值。 右值也是一个表示数据的表达式,比如: 字面

    2023年04月08日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包