CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Java >  J2SE / 基础类

A a; A b; swap(a, b); 为什么不能实现交换? 不是非基本数据类型不是传值吗?

楼主husl(胡少磊)2006-03-01 19:47:47 在 Java / J2SE / 基础类 提问

 
  如题 问题点数:50、回复次数:10Top

1 楼725137(2006年不会菜)回复于 2006-03-01 19:56:37 得分 10

楼主的表达能力..  
  哎.....Top

2 楼sonyejin(Neverwinter Nights 2)回复于 2006-03-01 19:59:44 得分 0

看不懂看不懂看不懂!!!Top

3 楼yuzl32(有酒醉)回复于 2006-03-01 20:00:00 得分 15

传地址(引用)也是靠地址值传递的Top

4 楼yuzl32(有酒醉)回复于 2006-03-01 20:03:39 得分 0

你这个问题可以这样描述:  
  char   *a   =   "aaa";  
  char   *b   =   "bbb";  
   
  swap(a,b);         //   只是传值,所以根本没有交换内容  
   
  //   交换函数  
  void   swap(char   *a   ,char   *b)  
  {  
          char   *temp   =   a;  
          a   =   b;  
          b   =   temp;  
  }Top

5 楼husl(胡少磊)回复于 2006-03-01 20:03:47 得分 0

class   A  
  {  
  }  
  void   swap(A   x,   A   y)  
  {  
      A   temp   =   new   A();  
      temp   =   x;  
      x             =   y;  
      y             =   temp;  
  }  
  A   a;  
  B   b;  
  swap(a,   b);  
  为什么这样a,b     没能实现交换?  
   
   
   
  传地址(引用)也是靠地址值传递的   ----------   就是这一句,   不懂    
  能就例子具体解释下吗?  
  Top

6 楼yuzl32(有酒醉)回复于 2006-03-01 20:24:52 得分 0

上面的例子已经说明,你再看看.Top

7 楼yuzl32(有酒醉)回复于 2006-03-01 20:26:36 得分 0

所谓传引用,其实就是把地址传进去.而这个地址也是要靠值传递的.Top

8 楼sonyejin(Neverwinter Nights 2)回复于 2006-03-01 20:36:41 得分 10

楼主的意思应该想把a   b都定义成A类的引用把:  
  A   a   =   new   A();  
  A   b   =   new   A();  
  这样的话调用了swap方法后,a和b所指向的A类对象并没有改变,也就是说还是指向了初始化时在内存里分配的那块地址空间,所以谈不上什么交换Top

9 楼doway(john)回复于 2006-03-01 23:03:09 得分 10

JAVA   中只有传值调用。  
   
  当调用一个方法时,真正传递到被调用方法中的参数并不是调用方法中变量,这中间需要经过一次复制,被调用方法中实际得到的参数只是调用方法中的变量的一份拷贝。  
   
  因此   swap(a,   b)   就达不到其目的。  
  Top

10 楼treeroot(旗鲁特)回复于 2006-03-02 09:08:04 得分 5

正因为只传值,所以才不能交换  
  问题本身就有问题!Top

相关问题

  • B/S结构中是不是非要用浏览器?
  • 简单问题,关于交换a,b的实现
  • 怎样不用中间变量,实现,a,b交换
  • 怎样不用中间变量,实现,a,b交换
  • 谁会交换int a 和 int b 的值,立马得分!!!
  • 源码交换:我手头有大型erp(b/s结构)源码,c#+sql2000,交换同样是c#+sql2000的OA源码,有意者请联系QQ:87436146
  • b
  • b
  • b
  • b

关键词

  • 交换
  • 调用
  • swap
  • 地址
  • 引用
  • 传递
  • 方法
  • temp
  • 看不懂
  • 问题

得分解答快速导航

  • 帖主:husl
  • 725137
  • yuzl32
  • sonyejin
  • doway
  • treeroot

相关链接

  • CSDN Java频道
  • Java类图书
  • Java类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo