java与c++比较 --值与引用的传递_C/C++_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > C/C++ > java与c++比较 --值与引用的传递

java与c++比较 --值与引用的传递

 2012/5/10 10:39:45  yaoming168  程序员俱乐部  我要评论(0)
  • 摘要:一、基本概念:1、按值传递:将一个参数传递给一个函数时,函数接收的是原始值的一个副本。因此,如果函数修改了该参数,仅改变副本,而原始值保持不变。2、按引用传递:将一个参数传递给一个函数时,函数接收的是原始值的内存地址,不是值的副本。因此,如果函数修改了该参数指向的内容,调用代码中的原始值也随之改变。二、引用与指针区别:java其实很多东西在内部都是用指针实现,指不过不让大家用而已。引用就相当于别名。C++当中引用和指针的差别:引用的概念:引用是个别名,当建立引用时,程序用另一个变量或对象(目标
  • 标签:c++ Java
一、基本概念

1、按值传递:

将一个参数传递给一个函数时,函数接收的是原始值的一个副本。因此,如果函数修改了该参数,仅改变副本,而原始值保持不变。

2、按引用传递:

将一个参数传递给一个函数时,函数接收的是原始值的内存地址,不是值的副本。因此,如果函数修改了该参数指向的内容,调用代码中的原始值也随之改变。

二、引用与指针区别:

java其实很多东西在内部都是用指针实现,指不过不让大家用而已。
引用就相当于别名。
C++当中引用和指针的差别:
引用的概念:
        引用是个别名,当建立引用时,程序用另一个变量或对象(目标)的名字初始化
它。从那时起,引用作为目标的别名而使用,对引用的改动实际上就是对目标的
改动。
        引用不是值,不占存储空间,声明引用时,目标的存储状态不会改变。所以,既
然定义的概念有具体分配空间的含义,那么引用只有声明,没有定义。
        引用的声明必须初始化。

引用的操作:
        C++没有提供访问引用本身地址的方法,因为它与指针或其他变量的地址不同,他
没有任何意义。引用在建立时就初始化,而且总是作为目标的别名使用,即使在应用
地址caozuofu.html" target="_blank">操作符时也是如此。
        引用一旦初始化,就维系在一定的目标上,再也不分开。任何对该引用的赋值都
是对引用所维系的目标赋值,而不是将引用维系到另一个目标上。

三、java引用与c++引用区别:


c++引用和java的引用很多地方是不一样的,从功能上看,java的引用倒更多的与c++的指针有着相似性(虽然从本质上是不同的),
c++引用的特徵
1,本身的地址就是被引用的变量或对象的地址,本身被维持在一个引用表里
2,没有空引用
3,引用声明是必须初始话
4,一旦声明,该引用就不能指向别的变量或对象,他仅仅是当作别名

但在java中,引用的概念就不一样了
只有第一条是一样的
引用可以为空,赋值null
声明可以不用初始化
声明以后,还可以指向另外的对象
所以说,java的引用在行为上更多的相似于c++的指针,可以这么说,java的引用就是披着引用皮的指针
以上是这几天做项目(c++)的一些领悟
java的钥匙是引用,c++的关键是指针

发表评论
用户名: 匿名