【总结】C++、C#、Java、Javascript、Python中引用的区别

多种语言《九九乘法表》荟萃:C、C++、C#、JavaScript、SQL、VB、VBA、Python 九九乘法表对于我们学习循环结构,尤其是双重循环特别有帮助,本文演示用C、C++、C#、HTML、SQL、VB、VBA、Python等多种语九九乘法表。 一、C语言 #include<stdio.h> main() { int i,j; for(i=1;i<=9;i++) { for(j=1;j<=i;j++) { printf("%d*%d=%... 阅读详情

首先分两大阵营:C++中引用是一块阵营,

C#、Java、Javascript、Python中引用是另一块阵营。

之所以这样分是因为同一阵营中引用使用方法基本一样。


C++引用本质是个常量指针,而其他语言引用本质是个普通指针。也就意味着C++的引用一旦初始化(指向确定了),以后就不可再修改(不可再指向其他对象),而其他语言的引用可以随时修改指向。


具体区别:(先声明下面所说的赋值是指“=”)

       一个变量使用无非就两种情况,读取变量的内容和给变量赋值。两大阵营中只有在读取引用时行为都一样,在给引用赋值时行为不一样。

       读取引用时:都是对引用进行“解引用”,结果是读取了引用指向的实际变量的值。

       给引用赋值时:C++依然进行“解引用”,所以C++中碰到给引用赋值的语句时,本质是给引用指向的变量赋值;而在其他语言中不进行“解引用”,本质是给引用这个指针赋值。

       正因为C++引用在读取和赋值时表现都一样(都是解引用),所以很多书上说引用就是变量的别名,因为任何时候使用引用(不管是赋值还是取值)都是使用引向的变量,故而引用表现的就好像变量的别名一样(但要认清本质,千万不要认为引用不占内存空间,实际上他是个指针也占内存空间的)。

       但是在其他语言中引用就是指针,不是变量的别名,因为给引用赋值时没有自动解引用,就是给指针赋值(操作的是指针,不再是变量了,所以不能称之为别名);取引用的值时会自动解引用,就是取得引向的变量的值。(你可以称之为“半个别名”)

       那么问题来了,在其他语言中,怎么给引用引向的变量赋值呢(第二次以上的赋值,第一次是变量自己的构造函数自动赋值)?

       答:只能通过copy函数,不同语言都有对copy函数的不同实现。注意copy和构造函数不一样,构造函数是给还不存在的变量赋值,也就是建立变量并给变量第一次赋值;而copy函数是给已经存在的变量赋第二次以上的值。


最后补充一下,C++、C#、Java中的引用是有类型的,也就是说指针是有类型的,不可随意更改这个引用(指针)的类型;而在Javascript、Python等脚步语言中,引用是没有类型的,也就是说指针是没有类型的,可以随意更改引用(指针)的类型,也即引用是“无类型的”,可以随意指向任何数据类型。


《测控仪器设计课后习题答案-浦昭邦-王宝光 《测控仪器设计课后习题答案-浦昭邦-王宝光 1.1. 测控仪器的概念是什么? 测控仪器则是利用测量和控制的理论,采用机、电、光各种计量测试原理及控制系统与计算机相结合的一种范围广泛的测量仪器。 1.2. 为什么说测控仪器的发展与科学技术发展密切相关? 仪器仪表的用途和重要性— 遍及国民经济各个部门,深入到人民生活的各个角落,仪器仪表中的计量测试仪器与控制仪器统称为测控仪器,可以说测控仪器的水平是科学技术现代化的重要标志。 仪器仪表的用途: 在机械制造业中:对产品的静态与动态性能测试;加工过程的控制与监测;设 阅读详情

相关推荐

Robosuite与Robomimic:机器人学习的黄金搭档

本文深入探讨了Robosuite与Robomimic这对机器人学习的黄金组合,详细介绍了如何利用Robosuite进行物理仿真和任务环境构建,以及Robomimic在演示数据处理和离线学习算法实现中的应用。通过实际案例和代码示例,展示了从仿真环境搭建到模型训练的全流程,帮助研究人员高效开展机器人学习实验。

weixin_29178069的博客 414

C、C++、Java、Python之间的区别

C、C++、Java、Python介绍 C++、Java和Python都是面向对象的编程语言。其中C++和Java都是强类型语言,而Python是一种弱类型语言。 1)python: 快速开发应用程序 python比较容易学习,语法很简单,融入了很多现代编程语言的特性。python的库非常丰富,可以迅速地开发程序,无论是网站还是小游戏都非常方便。不过,python的脚本的运行效率较低,不适合对运行...

qq_40518671的博客 5万+

手把手教你用HarmBench数据集测试大模型安全性(含多模态案例)

本文详细介绍了如何使用HarmBench数据集测试大模型的安全性,包括文本和多模态越狱指令的实战案例。通过环境配置、数据集获取、测试流程及结果分析,帮助开发者全面评估和提升大模型的安全防护能力,特别关注多模态攻击的防御策略。

weixin_26642481的博客 320

如何通俗地解释 C、C++、C#、Java、JavaScript、HTML、Python的用处

世界上本来没有计算机,工程师创造了它。为了让告诉计算机需要做什么事情,工程师发明了程序设计语言。 简单粗暴的编程:C语言:用来学编程;C++语言:用来使劲儿学编程;C#:用来在windows操作系统上学编程;java:想找工作学编程;javaScript:想做网页学编程;HTML:以为自己在学编程;python:用来舒舒服服学编程;ruby:既舒...

IT技术分享社区 817

告别Nginx原始日志!VictoriaLogs+Grafana构建企业级应用日志分析平台实战

描述:做为一个合格的运维工程师,在面对企业安全运维管理中,日志审计是一项非常重要的工作。授人以鱼不如授人以渔,各位运友们可参照作者的方案设计,在自己的项目中根据实际情况调整落地,例如,不在仅仅采集 NGINX 应用日志,而是采集 Apache、Tomcat、SpringBoot 等多种应用服务器的日志,又如,不再仅仅采集网络设备、安全审计审计日志,而是 Windows、Linux 等多种操作系统的审计日志等,大家可充分发挥想象、实践能力,也欢迎大家在知识星球中分享自己的方案设计,一起交流学习。

全栈工程师修炼指南-IT知识分享 2475

第三课 NXP S32K144 MCAL 集成到Vector davinci SIP-第一弹

将NXP S32K144 MCAL 集成到Vector davinci SIP的第三方库,导出ARXMl给Vector davinci SIP使用

candleer的博客 5855

c++中的引用和python中的引用_【总结】C++、C#、Java、Javascript、Python中引用的区别...

首先分两大阵营:C++中引用是一块阵营,C#、Java、Javascript、Python中引用是另一块阵营。之所以这样分是因为同一阵营中引用使用方法基本一样。C++引用本质是个常量指针,而其他语言引用本质是个普通指针。也就意味着C++的引用一旦初始化(指向确定了),以后就不可再修改(不可再指向其他对象),而其他语言的引用可以随时修改指向。具体区别:(先声明下面所说的赋值是指“=”)一个变量使用无...

weixin_30000407的博客 261

【AI黑话日日新】什么是AI Infra?

是支撑AI模型开发、训练、推理、部署与规模化运营的,是连接底层算力与上层AI应用的“数字基建”。没有高效的AI Infra,大模型训练、推理与落地都无法高效实现。

专注:太空算力、AI infra、异构调度、大模型成本工程 1098

Python与c、Java、c#比较

C语言:代码编译得到机器码,机器码在计算机上直接运行,每一条指令直接控制cpu工作。         其他语言:代码编译得到字节码,虚拟机执行字节码并转换成机器码后在处理器上运行。          python的语法简洁,类库丰富,如果实现相同功能,python可能需要10行代码,c可能需要100行代码。          python执行的效率比较低,C语言的执行效率是最高的。    

wzqpaladin的专栏 1万+

相位偏折PMD全栈技术拆解 | 四步相移解算+梯度积分形貌重建,助力镜面工件微米级缺陷高精度稳定检测

工业精密检测领域中,高反光镜面类工件长期存在检测瓶颈,涵盖汽车高亮车漆、半导体抛光晶圆、光学透镜、精密抛光模具、玻璃盖板等主流产品。传统2D机器视觉仅能识别表面明显污渍、大尺寸破损,完全无法捕捉微米级划痕、凹坑、橘皮、曲面微形变等微观缺陷;常规线激光3D、普通结构光3D检测设备,面对镜面材质会产生严重镜面反射杂光,激光条纹、结构光图案完全失真,必须喷涂显影粉辅助检测,不仅破坏工件表面完整性,还无法适配自动化量产产线,检测效率与良率极低。

getusushu的博客 539

32、生物医学中的多模态拉曼散射成像技术

本文综述了多模态拉曼散射成像技术在生物医学领域的应用,重点探讨其在肿瘤研究、癌症无创诊断和组织功能分析中的前沿进展。通过结合自发拉曼、相干拉曼散射(CARS/SRS)、光学相干断层扫描(OCT)、荧光寿命成像(FLIM)及多光子显微技术(TPEF/SHG)等多种模态,实现了对细胞和组织的高特异性生化信息与高分辨率形态学特征的同步获取。文章还介绍了多模态SERS纳米探针的设计及其在靶向成像与治疗一体化中的潜力,并系统分析了不同成像方式的操作流程、优势互补性及临床应用场景。最后展望了该技术向小型化、智能化和个性

zzz56的博客 152

编程参数传递机制深度解析:值传递与引用传递实战指南

在编程中,函数参数传递机制是构建软件逻辑的基础技术概念,主要分为值传递和引用传递两种核心模式。值传递通过创建数据副本实现安全隔离,适用于基本数据类型和小型结构;引用传递则通过共享内存地址直接操作原始数据,能有效提升大型对象处理的性能。理解这两种机制的技术价值在于优化内存使用、避免不必要的拷贝开销,并确保代码在多线程环境下的安全性。在实际应用场景中,不同编程语言如C++、Java、Python、C#和JavaScript对引用参数有着各具特色的实现方式,例如C++的显式引用与const引用、Java的对象引用

weixin_29722783的博客 314

【Proteus仿真】基于AT89C51单片机的单片机双向通信

本文介绍了基于AT89C51单片机实现双向通信的系统设计。系统采用MAX232芯片实现TTL与RS-232电平转换,通过CONN-D9F接口建立串行通信连接。甲机程序通过按键控制发送不同指令字符,同时接收乙机数据驱动数码管显示;乙机程序根据接收指令控制LED显示状态,并可发送0-10数字至甲机。文中详细说明了MAX232电平转换原理、DB9接口定义,以及完整的单片机控制程序代码,包括串口初始化、数据收发处理等关键功能实现,为嵌入式系统串口通信开发提供了实用参考方案。

XU157303764的博客 1094

python_一切皆对象

From Wikipedia 这里就解释了deepcopy和copy的区别, eg, deepcopy把list里面的对象复制再放入新建立的list对象当中, 但是copy只是copy list的对象, list的内容还是原来list的reference type Language Value type Reference type C++[3] booleans, character...

weixin_30485291的博客 82

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

国内常用的编程语言Python、Java、C/C++、JavaScript、C#、Go、PHP 的特点、应用领域以及区别

国内常用的编程语言Python、Java、C/C++、JavaScript、C#、Go、PHP 的特点、应用领域以及区别

GJZGRB的博客 2683

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

Java、JavaScript、C、C++、PHP、Python有什么区别?

来源:JAVA(ID:javabaiwen) 用任何编程语言来开发程序,都是为了让计算机干活,比如编写一篇文章,下载一首MP3等,而计算机干活的CPU只认识机器的指令; 所以,尽管不同的编程语言差异极大,最后都得“翻译”成CPU可以执行的机器指令。理论上任何语言干任何事情几乎都可以, 但是主要干什么那就不一样了。 今天大雄就来给大家说下面这几门语言都是干什么的? 01 C和C++ C/C++理论上说可以做任何开发, 只要有合适的硬件驱动和API,特点是效率高,基本上是编译语言里面效率最高的。 除非系统中连C

jgxy2019的博客 928

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

C、C++、Java、JavaScript、PHP、Python、Ruby 这些语言分别主要用来开发什么?

更好的阅读排版: C、C++、Java、JavaScript、PHP、Python、Ruby 这些语言分别主要用来开发什么? pansz,欢迎评论 此贴纯科普用,以下仅仅说主要用途,其他用途限于篇幅关系省略之,不要钻牛角尖。 C:系统底层,驱动程序,嵌入式底层,基础服务程序。 C++:上层服务程序,应用API,大型3D游戏。 Java:服务端应用程序,以及客户端应用程序。 JS:...

CodeAllen嵌入式 1685

【Kimi学习笔记】C/C++、C#、Java 和 Python

Java 编译成字节码,由 JVM 解释执行,实现了跨平台;平台依赖性:Java 以其跨平台能力著称,而 C# 最初是为微软的 .NET 框架设计的,虽然现在 .NET Core 已经支持跨平台,但 Java 在跨平台方面的历史更悠久。Java 是一种高级的、面向对象的编程语言,它的设计目标是“一次编写,到处运行”(WORA),通过 Java 虚拟机(JVM)实现跨平台运行。编译过程:Java 编译成字节码,运行在 JVM 上,而 C# 编译成中间语言(IL),运行在 .NET 运行时(CLR)上。

m0_74331272的博客 1051

计算机语言的区别,Java,c,c++,c#,Javascript,swift,kotlin

(1) Java的应用范围? 答:目前使用人数最广的计算语言,应用于企业软件开发、安卓移动开发,大数据云计算领域,几乎涉及所用的IT行业。 public class HelloWorld { public static void main(String [] args){ System.out.prinln(“Hello World”); } } (2) Python的应用范围? 答:语法简单,具...

weixin_41782409的博客 539

C、C++、Java、JavaScript、PHP、Python和Ruby,主要有什么区别?

c语言主要用于底层和驱动,编译器开发 c语言高效底层,主要用于底层的开发,比如一些系统驱动;unix,linux系统和其上相关应用的开发; 有很多语言比如python、php、perl、ruby等都c语言开发的这些语言的核心库,编译器等开发都是c语言。比如鸟哥的php7的开发,就基本上全是c语言了,据说鸟哥在新浪的时候就成功把新浪的php码农都带成了c码农。 还有就是如果某些应用如果对性能要求严格...

qq_44718980的博客 848

c、c++、java、python、js对比【面向对象、过程;解释、编译语言;封装、继承、多态】

C 手动内存管理:C语言没有内置的安全检查机制,容易出现内存泄漏、缓冲区溢出等安全问题。 适用于系统级编程 C++ 手动内存管理:C++需要程序员手动管理内存,包括分配和释放内存,这可能导致内存泄漏和指针错误。 适用于游戏引擎和系统级编程 Java 内存管理:垃圾收集器自动管理内存,减少了内存泄漏的风险。 平台无关性:具有“一次编写,到处运行”的能力,因为它通过Java虚拟机(JVM)来实现跨平台性。 python 快速开发:Python重视开发者的生产力,它有丰富的标准库和第三方库,用

luemeon的博客 1220

C、C++、Java、JavaScript、PHP、Python有啥区别,终于搞清楚了

c语言主要用于底层和驱动,编译器开发 c语言高效底层,主要用于底层的开发,比如一些系统驱动;unix,linux系统和其上相关应用的开发; 有很多语言比如python、php、perl、ruby等都c语言开发的这些语言的核心库,编译器等开发都是c语言。比如鸟哥的php7的开发,就基本上全是c语言了,据说鸟哥在新浪的时候就成功把新浪的php码农都带成了c码农。 还有就是如果某些应用如果对性能要...

weixin_30859423的博客 435

C++/C/JAVA/Python/JS之间的区别

参考链接:https://www.zhihu.com/question/21976478/answer/158145376 https://www.zhihu.com/question/19918532 https://www.zhihu.com/question/19918532/answer/21647195 1 语言类型 C++、java、python、js都是面向对象的编程语言,C是一种面向过程的语言 pyton、java都是强类型语言;C、C++、JS是一种弱类型语言。 Js python 动态

littleyy666的博客 1952

C、C++、C#、Java、php、python语言的内在特性及区别

C、C++、C#、Java、php、python语言的内在特性及区别: C语言,它既有高级语言的特点,又具有汇编语言的特点,它是结构式语言。C语言应用指针:可以直接进行靠近硬件的操作,但是C的指针操作不做保护,也给它带来了很多不安全的因素。C++在这方面做了改进,在保留了指针操作的同时又增强了安全性,受到了一些用户的支持,但是,由于这些改进增加语言的复杂度,也为另一...

weixin_33979203的博客 1420

C/C++/C#/Java/Python/Rust/Javascript的初学者上手的程序

C、C++、C#、Java、Python、Rust 和 JavaScript 编写一个简单的入门程序。

软件行业技术文化交流。 1455

python java php c#_Python和Java、PHP、C、C#、C++等其他语言的对比?

11111.C语言,它既有高级语言的特点,又具有汇编语言的特点,它是结构式语言。C语言应用指针:可以直接进行靠近硬件的操作,但是C的指针操作不做保护,也给它带来了很多不安全的因素。C++在这方面做了改进,在保留了指针操作的同时又增强了安全性,受到了一些用户的支持,但是,由于这些改进增加语言的复杂度,也为另一部分所诟病。Java则吸取了C++的教训,取消了指针操作,也取消了C++改进中一些备受争议的...

weixin_39690963的博客 199
上一篇: hao-单例模式(Singleton)
下一篇: Java的import和Python的import的区别
HNFXS985
博客等级 码龄14年 219粉丝 150原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值