A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 王琪 中级黑马   /  2014-2-27 21:15  /  985 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 王琪 于 2014-2-27 23:30 编辑

  1. import java.util.*;
  2. public class Text {
  3.         static char []s={'1','2','3'};
  4.         static void fun(char [] a){
  5.                 char [] b={'A','B','C'};
  6.                 char [] c={'0','0','0'};
  7.                 a[1]=b[1];
  8.                 a=c;//老师为啥不是000?
  9.         }
  10.         public static void main(String[]args){
  11.                 fun(s);
  12.                 System.out.println(s);
  13.         }
  14. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
zzkang0206 + 1

查看全部评分

7 个回复

倒序浏览
  1. import java.util.*;
  2. public class Text {
  3.         static char []s={'1','2','3'};
  4.         static void fun(char [] a){
  5.                 char [] b={'A','B','C'};
  6.                 char [] c={'0','0','0'};
  7.                 a[1]=b[1];
  8.                 a=c;//老师为啥不是000?你这里是把c这个数组的地址值赋值给a的数组
  9.         }
  10.         public static void main(String[]args){
  11.                 fun(s);
  12.                 System.out.println(s);
  13.         }
  14. }  输出的答案为  1B3
复制代码

评分

参与人数 1技术分 +1 收起 理由
zzkang0206 + 1

查看全部评分

回复 使用道具 举报
本帖最后由 王琪 于 2014-2-27 21:35 编辑

嗯 ..我是想通过a=c把c的内容直接f赋值给a的 是不是要用高级for 循环另外定义一个函数啊?
回复 使用道具 举报


嗯 ..我是想通过a=c把c的内容直接f赋值给a的
是不是要用高级for 循环另外定义一个函数啊?
回复 使用道具 举报
王琪 发表于 2014-2-27 21:35
嗯 ..我是想通过a=c把c的内容直接f赋值给a的
是不是要用高级for 循环另外定义一个函数啊? ...

如果没记错的话  数组应该是这样赋值的。
定义了一个数组 int[ ] a={1,2,3}
                     表示数组中的每个元素的值 a[0]=1 a[1]=2 a[2]=3
  要更改  得  a[0]=4 a[1]=5 a[2]=6
  这样 数组 int[]a ={4,5,6}

回复 使用道具 举报
王琪 发表于 2014-2-27 21:35
嗯 ..我是想通过a=c把c的内容直接f赋值给a的
是不是要用高级for 循环另外定义一个函数啊? ...

我也是新手 希望我说的 能给你带来帮助。。
回复 使用道具 举报
王琪 中级黑马 2014-2-27 21:48:50
7#
yekong262 发表于 2014-2-27 21:46
我也是新手 希望我说的 能给你带来帮助。。

没事的 被C语言的指针弄蒙了
谢谢你
回复 使用道具 举报
王琪 中级黑马 2014-2-27 23:29:15
8#
这个了我查到了
/*
java 数组的操作   System类的arraycopy静态函数用于数组拷贝   数组是不能越界的
对象数组的复制实际上是复制的引用的拷贝  也就是对象的地址  
*/

class Point
{
int x;
int y;
Point(int x,int y)
{
  this.x=x;
  this.y=y;
}
}
class  Test
{
public static void main(String []args)
{
  /*int a[]=new int[]{1,2,3,4,5};
  int b[]=new int[5];
  System.arraycopy(a,0,b,0,a.length);   //5个参数  原数组 起始index  数组2   起始index  拷贝长度  
  for(int n=0;n<b.length;n++)
  {
   System.out.println(b[n]);
  }
  */
  Point a[]=new Point[]{new Point(1,2),new Point(3,4),new Point(3,9)};
  Point b[]=new Point[3];
  System.arraycopy(a,0,b,0,3);  //拷贝的是对象的引用 修改拷贝一样会修改原来数据  
  for(int n=0;n<a.length;n++)
  {
   System.out.println("x="+b[n].x+",y="+b[n].y);
  }
  
  //对拷贝进行修改会修改原来数据
  b[1].x=9;
  b[2].x=5;
  b[0].x=7;
   for(int n=0;n<a.length;n++)
  {
   System.out.println("x="+a[n].x+",y="+a[n].y);
  }
  
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马