当前位置:  编程技术>java/j2ee

java及C++中传值传递、引用传递和指针方式的理解

    来源: 互联网  发布时间:2014-11-08

    本文导语:  java的值传递理解: 代码1: public class Test { /** * @param args */ public static void main(String[] args) { StringBuffer buffer= new StringBuffer("colin"); SChange(buffer); System.out.println( buffer); } publ...

java的值传递理解:

代码1:

public class Test {   
   
  /**   
   * @param args   
   */  
  public static void main(String[] args) {     
    StringBuffer buffer= new StringBuffer("colin");   
    SChange(buffer);   
    System.out.println( buffer);   
  }   
      
  public static void SChange (StringBuffer str) {   
    str= new StringBuffer("huang");   
  }   
   
}

代码2:

public class Test {   
   
  /**   
   * @param args   
   */  
  public static void main(String[] args) {     
    StringBuffer buffer= new StringBuffer("colin");   
    SChange(buffer);   
    System.out.println( buffer);   
  }   
      
  public static void SChange (StringBuffer str) {   
    //str= new StringBuffer("huang");       str.append(" huang");   
  }   
   
}

再分别用两张图来解释上面的代码1、代码2:

原始状态

代码1图解:

代码2理解:

代码一中, copy的那个引用, 指向了一个新的对象。 但原对象还是没有变化的。

代码二中, copy的那个引用, 把原对象改变了。

这就是Java的值传递。

C++中两种传递的区别:

对于C++值传递、引用传递、指针方式用如下代码理解,自己运行测试

#include  
#include  
#include  
void ByValue(int a) 
{ 
  a = a + 1; 
} 
 void ByRef(int& a) 
{ 
  a = a + 1; 
} 
 void ByPointer(int* a) 
{ 
  *a = *a + 1; 
} 
 int main(int argv, char** args) 
{ 
  int v = 1; 
  ByValue(v); 
  ByRef(v); 
 
  // Pass by Reference   ByPointer(&v); 
 
  // Pass by Value   int* vp = &v; 
  ByPointer(vp); 
   
  std::cout 

    
 
 

您可能感兴趣的文章:

  • Java中的值传递和引用传递实例介绍
  • 在java网络编程中,传递数据时,如何把二维数组从客户端传递到服务器端?请教大家,谢了
  • java applet和servlet之间是否可以传递对象?
  • java中的值传递和引用传递的区别分析
  • java中如何使参数传递按传"引用"方式进行?
  • java的基本型数据,比如int,char在函数参数中能否“按址传递”
  • 在java application中,2个窗体间如何传递参数?
  • Jsp中Java和JavaScript之间如何传递变量?
  • 请问在java里传递方法的可选参数是如何实现的
  • 如何用jacob包,从Java和com之间传递二维数组?
  • linux下JNI给JAVA传递中文的问题
  • 刚才发现了一个很严重的问题,java传递参数的时候不能检查正确?
  • 请问java程序调用外部exe文件,怎么传递参数
  • 如何在VC和JAVA间传递汉字,哪个晓得?
  • 如何用Java通过POST方法向HTTP接口传递数据?
  • 写一个方法,向它传递一个对象,循环打印出对象层次结构中的所有类?thinking in java里面的一个习题不知道如何做请教高手?
  • java中String字符串的传递。(引用)
  • 关于JAVA类方法中参数据传递
  • 我使用corba将Java和C程序连接起来,由Java向C传递一个字符串,但是我发现我原来的0a被换成了0d 0a,那位给各解释。
  • 又是java参数传递的问题,看里边的例子。。。
  • 我把JAVA和C++都搞混了,希望JAVA、C++爱好者给我讲讲里面的程序注释问题在JAVA和C++中都有哪些不同。
  • 学JAVA真的比C++好吗???真的比C++有前途吗?????
  • 怎样编译java, C++
  • java是不是和c++差不多?
  • 我学了3年C++,想转Java
  • java 与 C++ 实现后绑定的方法
  • c++转java 望高手指教
  • 接口?java 怎会有这东东?c++ 都没有
  • 怎样将标准的C++代码转换成JAVA代码??
  • 一个关于c++和java 的区别?
  • Java转C++代码工具 J2C
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • C语言中有指针,因此C语言可以创建链表,那么Java语言没有指针,那Java是否可以创建链表呢?
  • 谁说java没指针,我觉得全是指针才对
  • JAVA中函数调用时,能不能向 C/C++一样函数的入口参数可以为传出值(就是引用,或指针)
  • Java中的this指针使用方法分享
  • JAVA中的引址和C++中的指针有什么区别??高手向教!!
  • c++里有函数指针,java里没有,如果我想实现这样的功能,该怎么做呢?请进。。。
  • java 代码中预防空指针异常的处理办法
  • java函数传参数有“传值”与“传引用(指针)”之分吗?
  • java中有像C++中指向函数的指针这种东西吗?
  • Java里也有指针吗?一个关于Vector的问题
  • Java中避免空指针异常的方法
  • java命名空间java.sql类types的类成员方法: java_object定义及介绍
  • 我想学JAVA ,是买THINK IN JAVA 还是JAVA2核心技术:卷1 好???
  • java命名空间java.awt.datatransfer类dataflavor的类成员方法: imageflavor定义及介绍
  • 请问Java高手,Java的优势在那里??,Java主要适合于开发哪类应用程序
  • java命名空间java.lang.management类managementfactory的类成员方法: getcompilationmxbean定义及介绍
  • 如何将java.util.Date转化为java.sql.Date?数据库中Date类型对应于java的哪个Date呢
  • java命名空间java.lang.management接口runtimemxbean的类成员方法: getlibrarypath定义及介绍
  • 谁有电子版的《Java编程思想第二版(Thinking in java second)》和《Java2编程详解(special edition java2)》?得到给分
  • java命名空间java.lang.management接口runtimemxbean的类成员方法: getstarttime定义及介绍
  • 本人想学java,请问java程序员的待遇如何,和java主要有几个比较强的方向
  • java命名空间java.awt.datatransfer类dataflavor的类成员方法: stringflavor定义及介绍
  • 我对JAVA一窍不通,可惜别人却给我一个Java的project,要我做一个安装程序,请问哪里有JAVA INSTALLER下载,而且我要不要安装java的sdk才能完成此项任务?
  • java命名空间java.security类keystore的类成员方法: getdefaulttype定义及介绍
  • 新年第一天,让我们讨论一下未来一年JAVA的发展趋势! 个人认为,JAVA将主要朝ERP和JAVA手机方面发展!
  • java命名空间java.lang.management接口runtimemxbean的类成员方法: getclasspath定义及介绍
  • c++转java 望高手指教 iis7站长之家
  • java命名空间java.awt.datatransfer类dataflavor的类成员方法: javaserializedobjectmimetype定义及介绍
  • redhat7.3下,java程序打印中文直接用java命令执行正常,用crontab执行java命令为乱码
  • java命名空间java.awt.datatransfer类dataflavor的类成员方法: javafilelistflavor定义及介绍
  • 各位学java的朋友,学java的未来是什么,你们学java都用来开发什么项目啊!来者给分!!




  • 特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3