菜鸟教程 -- 学的不仅是技术,更是梦想!

C++ 引用类型

分类 编程技术

说到引用,先来讲一个故事:我们生活的院子里有这样一个小盆友,他的名字叫罗XX,我们喜欢给他起一个外号,看着他营养不太好,脑袋比较大、身子比较小,于是我们就给他起了一个叫"萝卜头"的外号。那么罗XX就是他的真实姓名,萝卜头就是他的一个别名,那么什么是引用呢??

定义:引用:就是变量的一个别名。

注:作为别名来说,一个变量不能只有别名,而没有自己的真实姓名。

基本数据类型的引用

如下面的一段代码:

实例

#include<iostream>usingnamespacestd; {inta = 3; int &b = a; //b就是a的引用,即b是a的一个别别名。//引用必须初始化,否则编译会报错b = 10; cout<< a << endl; //此时a 的值,已由原来的3变成了10.因为我们无论对别名做什么操作,其实都是对变量的本身做操作。就像我们去交萝卜头去干什么,罗XX本身就去干什么。return0; }

结构体类型的引用

如下面的一段代码:

实例

#include<iostream>usingnamespacestd; //定义一个名叫Coor的结构体,这是一个坐标。typedefstruct{intx; inty; }Coor; intmain(void){Coorc1; //定义一个结构体变量,叫c1.Coor &c = c1; //给c1起了一个别名叫c.c.x = 10; //通过引用给结构体变量的数据成员赋值c.y = 20; cout<< c1.x << c2.y; //输出的结果:10 20return0; }

指针类型的引用

指针类型的引用是引用当中最为复杂,最难理解的一部分,同时在写法形式上也有着与众不同的地方。

定义:

 类型 *&指针引用名 = 指针;

看个例子:

实例

#include<iostream>usingnamespacestd; intmain(void){inta = 10; //定义一个整型的a变量,a的值为10。int *p = &a; //定义一个指向a变量的指针int *&q = p; //定义一个指针的引用,即q为p的别名。 定义方法:类型 *&指针引用名 = 指针; *q = 20; //把20赋给*q,相当于是把20赋值给*p,也就相当于把20赋值给a.cout<< a << endl; //输出a 的值为20.return0; }

引用作函数参数

在没有学习引用之前我们学习 C 语言时,学过这样的经典程序:

//将两个值进行交换voidfun(int *a,int *b)//形参为两个整型的指针变量{inttemp = 0; //定义一个临时变量。良好的习惯是定义一个变量并初始化它;c = *a; //将*a赋值给c; *a = *b; //将*b赋值给*a; *b = c; //再将c赋值给*b;这样就完成了a、b数值的交换}intx = 10,y = 20; fun(&x,&y); //在主函数中调用时,传过去的实参需要写成 取地址a,取地址b,比较麻烦,也不易理解。

现在我们学习了引用,在完成同等功能时需要写成什么样子?

实例

voidfun(int &a, int &b)//形参为两个整型的引用{inttemp = 0; temp = a; a = b; b = temp; }intx = 10,y = 20; fun(x,y); //在主函数中调用时,实参传过去后a是x的别名,b是y的别名。

原文地址:https://blog.csdn.net/stop_and_go/article/details/51334137

点我分享笔记

  • 昵称 (必填)
  • 邮箱 (必填)
  • 引用地址
ADO 教程 AI Agent 教程 AI 入门教程 Ajax 教程 Android 教程 Angular2 教程 AngularJS 教程 AppML 教程 ASP 教程 ASP.NET 教程 Bootstrap 教程 Bootstrap4 教程 Bootstrap5 教程 C 教程 C# 教程 C++ 教程 Chart.js 教程 Claude Code 教程 CMake 教程 Codex 教程 CSS 参考手册 CSS 教程 CSS3 教程 Cursor 教程 Dart 教程 Dash 教程 Django 教程 Docker 教程 DTD 教程 ECharts 教程 Eclipse 教程 Electron 教程 FastAPI 教程 Firebug 教程 Flask 教程 Flutter 教程 Font Awesome 图标 Foundation 教程 Git 教程 Go 语言教程 Google 地图 API 教程 Hermes Agent Highcharts 教程 HTML DOM 教程 HTML 参考手册 HTML 字符集 HTML 教程 HTTP 教程 ionic 教程 iOS 教程 Java 教程 JavaScript 参考手册 Javascript 教程 jQuery EasyUI 教程 jQuery Mobile 教程 jQuery UI 教程 jQuery 教程 JSON 教程 JSP 教程 Julia 教程 Jupyter Notebook 教程 Kotlin 教程 LangChain 教程 LaTeX 教程 Linux 教程 Lua 教程 Markdown 教程 Matplotlib 教程 Maven 教程 Memcached 教程 MongoDB 教程 MySQL 教程 Next.js 教程 NLP 教程 Node.js 教程 NumPy 教程 Obsidian 教程 Ollama 教程 OpenCode 教程 OpenCV 教程 Pandas 教程 Perl 教程 PHP 教程 Pillow 教程 Playwright 教程 PostgreSQL 教程 PowerShell Pycharm 教程 Python 3 教程 Python 基础教程 Python 设计模式 Python 量化交易 PyTorch 教程 R 教程 RDF 教程 React 教程 Redis 教程 RESTful API RSS 教程 Ruby 教程 Rust 教程 Sass 教程 Scala 教程 SciPy 教程 Selenium 教程 Servlet 教程 Skills 教程 Sklearn 教程 SOAP 教程 SQL 教程 SQLite 教程 SVG 教程 SVN 教程 Swagger 教程 Swift 教程 Tailwind CSS 教程 TCP/IP 教程 TensorFlow 教程 TypeScript 教程 uni-app 教程 VBScript 教程 Vibe Coding 教程 VSCode 教程 Vue.js 教程 Vue3 教程 W3C 教程 Web Service 教程 WSDL 教程 XLink 教程 XML DOM 教程 XML Schema 教程 XML 教程 XPath 教程 XQuery 教程 XSLFO 教程 XSLT 教程 Zig 教程 数据结构 机器学习 正则表达式 汇编语言 测验 浏览器 网站品质 网站建设指南 网站服务器教程 网络协议 设计模式

AltStyle によって変換されたページ (->オリジナル) /