C++引用

【ROS】ROS局域网下多机通讯方法 最近工作中需要用到多机通讯,这里稍微总结一下使用方法。一、网络配置ifconfig这里举个例子,主机的IP地址为192.168.1.127,从机的IP地址为192.168.1.126;之后可测试一下能否互相ping通,成功后进行下一步。 阅读详情

1.引用的概念和定义

1.引用不开辟空间

引用不是新定义了一个变量,而是给已经存在的变量取了另外一个名字,记住!!!只是取了另外一个名字,不会为这个引用开辟空间。

我们可以看到,我们设置了一个c用来引用a的值,但是我们调试的时候无法读取c的内存,证明引用是不开辟空间的 

2.引用的特性

1.引用在定义时必须初始化

引用不初始化就会报错. 

2.一个变量可以有多个引用

 b和c和d都是a的引用,都能表示a。

3.引用一旦引用一个实体,再不能引用其它实体

我们可以看出一旦d引用了a那么就和a绑定死了,如果修改d的值就是修改a的值 ,所以引用只能再初始化时定义一次,一旦定义完成就绑定死了。

3.引用的使用

引用在实际中的作用还有引用传参和引用做返回值

 这两种用法主要是为了增加代码的书写效率,当然指针也能做到以上的功能,但是引用会比指针更方便一点

 这种写法要比指针优化很多,至少不需要再解引用。

引用也可以作为返回值。 

 4.const引用

const和我们学的c语言的const差不多,将变量的权限缩小,说白了就是变量的值变不了了,权限小了,

引用加了const所以我们不能对它赋值。 

但是这种就可以,因为它没有const,它权限大。

1.权限可以从大变小,但不能从小变大

这就是从小变大,编译器会报错。 

这就是从大变小编译器不报错输出 如下

 

2.类型转换

有些时候要注意一些类型会发生类型转化比如int& b = a*3;double d=12.13;int& r=d;这样的一些场景会发生类型转化,再a*3发生运算的时候运算结果会保留再一个临时对象中,int&r=d也是如此在,类型转化中它的值也会被保留在一个临时对象中,所以b和r引用的都是临时变量,而C++规定临时对象具有常性,所以这里就发生了权限放大,必须要常引用才可以。

以上就是在类型转换或者运算时发生类型转化,然后还使用引用发生报错。

正确的方式如下 

5.指针和引用的关系 

1.引用是变量的取别名不开空间,指针是存储一个变量的地址,要开空间。

2.引用在定义时必须初始化,指针建议初始化,但语法上不是必须的。

3.引用在初始化引用一个对象后,就不能在引用其它对象,而指针可以在不断地改变指向对象

4.引用可以直接访问指向对象,而指针需要解引用才是访问对象

5.sizeof中含义不同,引用结果为引用类型大小,但指针始终是地址空间所占字节个数(32位平台下占4个字节,64位下占8个字节)

6.指针很容易出现空指针和野指针的问题,引用很少出现,引用的使用相对更安全一些

TLSR8258蓝牙Mesh实战:从SDK下载到自定义通信指令全流程(附避坑指南) 本文详细介绍了TLSR8258蓝牙Mesh开发的完整流程,从SDK下载、环境搭建到自定义通信指令的实现。通过实战案例和避坑指南,帮助开发者快速掌握低功耗蓝牙Mesh网络构建技巧,适用于智能家居、工业监控等物联网场景。 阅读详情

相关推荐

仪表数字图像识别的传统方法

虽然现有很多机器学习算法能够准确地识别数字,但是传统方法对于一些需要离线识别且计算能力有限的下位机设备来说,仍然有非常不错的效果。因此,今天就向大家讲解一下传统的数字识别方法在仪表读数方面的应用。 1.图像预处理技术 1.1 主要流程 图像处理依次需要进行图片预处理、字轮区域定位、字符分割和字符识别等过程。其中图像处理流程如下图所示。 2. 详细过程 2.1 灰度化 为了减小图像原始数据量,本系...

XYZ 4523

C++引用到底占用空间吗?

(其实是c++语言层面,做了这个限制导致的,引用在使用的时候默认被解引用了,这个时候sizeof只能取到指向的对象,而不是引用本身。sizeof(指针)占用了空间,但是sizeof(引用)就没有占用空间,而是引用指向的对象的空间大小。引用这个地址,肯定是在内存里面占了空间了,不然这个地址信息放哪里。比如,sizeof指针,和sizeof指针指向的对象,他们的大小会不一样。验证办法,申明足够多的引用指向同一个对象,观察内存的使用情况。是物理上的内存,还是单个程序里面的内存。但是,如果只是从程序的角度而言。

Aheaboy的博客 1690

Windows环境Oracle19C安装与配置全攻略

本文详细介绍了在Windows环境下安装与配置Oracle19C数据库的完整流程,包括环境准备、安装步骤、网络配置、客户端工具设置及常见问题解决方案。特别针对Windows 10和Windows Server 2016及以上版本提供了优化建议,帮助用户高效完成Oracle19C的部署与维护。

weixin_28455801的博客 487

【C++】引用

引用的定义 引用是给另外一个变量起别名,所以引用不会分配内存空间。 引用的声明方法:类型标识符 &引用名=目标变量名;(如int &ptr = num;) 引用和指针的区别 1、指针是一个实体,需要分配内存空间。引用只是变量的别名,不需要分配内存空间。 2、引用在定义的时候必须进行初始化,并且不能够改变。指针在定义的时候不一定要初始化,并且指向的空间可变。(注:不能有引用的值不能为NULL) 3、有多级指针,但是没有多级引用,只能有一级引用。 4、指针和引用的自增运算结果不一样。(

我的笔记本 1259

基于FPGA的车道线检测系统设计

本文设计了一种基于FPGA的车道线检测系统,采用Altera Cyclone IV EP4CE10F17C8作为主控芯片,结合OV7725摄像头和LCD显示屏实现实时车道线检测。系统通过硬件流水线处理架构,依次完成图像采集、灰度转换、中值滤波、Sobel边缘检测和Hough变换直线识别等功能模块。所有模块均采用Verilog HDL实现,充分利用FPGA的并行处理能力,显著提升了系统响应速度。测试结果表明,该系统能够有效检测道路车道线,满足实时性要求,为ADAS系统提供了一种高效的硬件解决方案。

huanghm88的专栏 121

C++的那些事:你真的了解引用吗

一、引用的本质是什么 说到引用,一般C++的教材中都是这么定义的: 1,引用就是一个对象的别名。 2,引用不是值不占内存空间。 3,引用必须在定义时赋值,将变量与引用绑定。 那你有没有想过,上面的定义正确吗?编译器是如何解释引用的? 这里先给出引用的本质定义,后面我们再进一步论证。 1,引用实际是通过指针实现的。 2,引用是一个常量指针。 3,引用在内存中占4个字节。...

weixin_34240520的博客 1211

​​手把手教你学PCIE--ATU 的 Bar 匹配模式与地址匹配模式详解​

摘要: ATU(地址转换单元)提供两种地址匹配模式:Bar匹配模式基于PCI设备的BAR寄存器自动映射虚拟地址(只需配置物理基址),适用于标准PCI设备DMA;地址匹配模式需显式配置虚拟与物理地址范围,适合自定义映射场景。核心区别在于匹配依据(BAR自动推导vs人工定义),Bar模式简化配置,地址模式更灵活。

MHD0815的博客 379

## 引用是否占用内存空间? ##(自娱自乐,仅供参考)

引用是否占用内存空间? ##(自娱自乐,仅供参考)被猪队友问到一个问题“引用是否占用内存空间?”。突然有点懵逼,查阅一些资料以后更懵逼了。。。有的说占用有的说不占用,讨论可以说很激烈。今天猪队友自己找到了证据,此时此刻我作为一个猪队友决定站在“引用占用内存空间”的这一派整理一下这些资料。

贾路飞的博客 2864

基于YOLOv8与UI界面的校园垃圾分类督导系统

YOLO(You Only Look Once)是目前最为广泛使用的目标检测算法之一。它通过一次前向传递即完成目标检测,具有极高的速度与效率。YOLOv8是YOLO系列的最新版本,相比于之前的YOLO版本,YOLOv8在速度、精度、检测能力等方面都有了显著的提升。本项目通过结合YOLOv8模型与UI界面,成功实现了校园垃圾分类督导系统。该系统能够自动识别不同类型的垃圾,并通过UI界面实时展示垃圾分类的结果。

YOLO 337

自动化Google Chrome的强大工具:chromedriver下载、安装、简单使用

本文介绍了 ChromeDriver 的基本概念和安装配置方法,重点讲解了如何通过 Selenium 实现 Chrome 浏览器的自动化测试。内容涵盖了 ChromeDriver 下载、版本匹配、依赖引入和简单的自动化测试脚本示例,帮助读者快速上手并避免常见问题。

曾经“等你生日那天”都遥远得像未来,如今却可欢愉的挥手说“下个十年见” 88万+

C++中引用会不会占用内存

引用占内存吗 引用的实现方式类似于常量指针(类型* const 指针) 每次对引用的使用实际上就是对该指针进行解引用操作(由编译器完成)。 多数时候编译器能对引用进行优化,使得在运行时,引用不占额外的存储空间 但是,如果需要分配存储空间以实现所需要的语义,则编译器还是会给引用分配空间的 即,引用类型的非静态数据成员,会增加类对象的大小 ...

zl_1719828096的博客 954

uniapp [安卓苹果App端] - 解决支付宝支付报错requestPayment:fail [payment支付宝:62009]未知错误,使用uni.requestPayment支付报错排查方案

uni-app支付宝,uniapp支付宝沙箱支付报错,uni.requestPayment,uniAPP App支付宝支付提示错误requestPayment:fail [payment支付宝:62009]未知错误,UNI-APP支付宝报错"code": -100,uniapp 解决安卓App使用uni.requestPayment实现沙箱环境支付宝支付报错,uniapp安卓app使用支付宝的沙箱环境支付时报了这个错,安卓端app支付宝支付,在沙箱测试环境测支付,提示“商家订单参数异常,请重新发起付款,选择

🏆 前端领域优质创作者 9609

【c++】cpp之引用

c++中引用知识点

hutaotaotao的博客 1328

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

CPP的引用

CPP的引用,欢迎点赞,互相关照。为了梦想前进。

qq_61273847的博客 1556

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

cpp——引用

引用是什么?

weixin_57525369的博客 3345

引用 CPP

引用

huiohuoi的博客 1047

CPP引用

通过 const 关键字定义常量引用,必须在声明时初始化。上述代码中,10 是一个字面值常量,本身不是变量,不能直接被引用。此时,如果想要修改 a 的值,是不被允许的。会提示表达式必须是可修改的左值。a = 100;常量引用主要用来修饰形参,提高安全性,防止形参改变实参。如下代码,向 test () 函数传入实参变量 a,test () 函数执行之后,输出 a 的值是 100。也就是说函数执行完成后,会对外部的变量 a 产生影响。int a = 10;这里ref是对a的常量引用。

qq_59805046的博客 838

C++中引用与指针的区别_cpp 引用与指针的区别

学过C的朋友应该都知道指针,刚开始学习指针的时候,都会觉得指针很难,学完了指针才发现指针就是保存的地址。引用没有分配内存空间,所以访问函数形参就是访问引用的变量,是直接访问。而指针分配了内存空间用来保存变量的地址,需要通过保存的地址找到指向的变量,是间接访问。而指针在传参的时候,必须传变量的地址过去,否则不能改变变量的值。5、sizeof 引用得到的是所指向的变量(对象)的大小,而sizeof 指针得到的是指针本身的大小。6、引用访问一个变量是直接访问,而指针访问一个变量是间接访问。二、引用与指针的区别。

2401_87555420的博客 444

cpp中对于引用的使用

C++新增了一种复合类型——引用变量。引用是已定义的变量的别名(另一个名称)。例如,如果将twain作为clement变量的引用,则可以交替使用twain和 clement 来表示该变量。那么,这种别名有何作用呢?是否能帮助那些不知道如何选择变量名的人呢?有可能,但引用变量的主要用途是用作函数的形参。通过将引用变量用作参数,函数将使用原始数据,而不是其副本。这样除指针之外,引用也为函数处理大型结构提供了一种非常方便的途径,同时对于设计类来说,引用也是必不可少的。

Lyajpunov的博客 951

C++中在一个cpp文件中引用另外一个cpp文件的方法

创建1个func2.cpp 通过include 引入func1.cpp 来使用func1里面的方法(如果有单独的头文件,比如func1.h 可以通过#include“func1.h”)C++中在一个cpp文件中引用另外一个cpp文件 可以通过导入cpp文件或者.h文件来实现,类似python中的import 导入。

小牧在一直在学习,在前进的道路上大家一起学习,进步。 8008

【Cpp】指针与引用

在C语言中,我们对指针的规范并不严谨——我们常常会用void*来传入一个不知道其变量类型的指针,为了兼容CCpp允许这样的语法存在,但是,由于这样的指针不具有安全性,我们无法通过来解引用void*,这就需要用到我们的显式转换。为了方便看指针的引用而不是由一堆组成了参数和参数类型,我们采用引用来让这种写法变得更加简洁;

Mongxin_Chan的博客 1121

c++中一个cpp文件中的类如何引用另一个cpp文件中的类成员变量及方法

A.cpp中引用B.cpp文件中的类BB的成员变量以及方法: 在B.cpp文件中定义一个全局指针 BB *b_ptr; 然后在A.cpp中 声明这个全局指针 extern BB *b_ptr; 就可以使用了! ...

Stephen 1万+

Cpp_引用

1.引用即别名int a = 10; int& b = a; // b引用了a,b是a的别名,b就是a,a就是b /* int b = a; */引用必须做初始化,而且一经初始化其所引用的目标就不能更换。引用对临时变量(匿名对象的作用)任何出现字面值常量、计算表达式、类型转换、函数返回值的场合,都会有临时变量(匿名变量)产生。只能用带有常属性(const)的引用引用这样的临时变量,而且一旦通过引用引

Jerry的专栏 2787

【Cpp】引用的本质

一、什么是引用 引用是C++中的一个新的语言特性,从表面来说,引用就是某一变量(目标)的一个别名,对引用的操作与对变量直接操作完全一样。引用的声明如下: 类型标识符 &引用名 = 目标变量名; 这里面的&不是位运算、不是取地址,而是一个引用的标识符,可以认为是一个“类型标识符 &”类型,类型标识符是指目标变量的类型。如: int a = 10; int &b = ...

baymaxly的博客 843

Cpp中的各种引用

引用不能引用数组 引用大小测试 class MyClass { char & a; cha

weixin_43572257的博客 1366

[cpp][引用][重点][cpp初阶][一][8]详细讲解

const引用是指对常量的引用。在C++中,使用const关键字来修饰引用,它可以引用一个常量对象 or 一个不能被修改的对象主要用于函数参数传递和保护数据不被意外修改。

2301_80443197的博客 845
上一篇: C++函数重载
下一篇: C++内联函数
Arcane Code
博客等级 码龄3年 598粉丝 101原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值