大佬们,请教一个问题!

Mr_DesTinY 2011-08-27 11:14:22
就是这个简单的程序,我传递引用时会出错:

import java.io.*;
class Test{
public static void main(String[] args)
{
int x = 3;
int y = 4;
changeXY(x,y);
}
public static void changeXY(int& x, int& y)
{
x = (x+y)/2;
y = x-y;
x = x-y;
y = (x-2*y)/2;
System.out.println(x);
System.out.println(y);
}
}

错误为:需要<标识符>,这是为什么啊,难道java不能传递引用参数???
...全文
79 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
打油的程序员 2011-08-27
  • 打赏
  • 举报
回复

//java 一切皆引用,原来的程序x,y只有在作用域中有效,
//如果要返回值,可以返回一个数组对象,里边就包括x,y改变后的值
import java.io.*;

public class TestQuote {

public static void main(String[] args) {
int x = 3;
int y = 4;
int a[] = changeXY(x, y);
x = a[0];
y = a[1];
// System.out.println(x);
// System.out.println(y);
//
}


public static int[] changeXY(int x, int y) {
x = (x + y) / 2;
y = x - y;
x = x - y;
y = (x - 2 * y) / 2;
// System.out.println(x);
// System.out.println(y);
return new int[]{x,y};

}
}


RainOnly 2011-08-27
  • 打赏
  • 举报
回复
ref int a, ref in b
Mr_DesTinY 2011-08-27
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 sd4261829 的回复:]
去掉&,建议你去看看java数据类型,int是基本型,传的是值,传引用也是直接写变量名,不写&
[/Quote]
但是直接写变量名,是改变不了main中的x,y的值的,2楼说的对~
神经斌 2011-08-27
  • 打赏
  • 举报
回复
去掉&,建议你去看看java数据类型,int是基本型,传的是值,传引用也是直接写变量名,不写&
gsy999 2011-08-27
  • 打赏
  • 举报
回复
[Quote=引用楼主 hc1989326 的回复:]
就是这个简单的程序,我传递引用时会出错:

Java code


import java.io.*;
class Test{
public static void main(String[] args)
{
int x = 3;
int y = 4;
changeXY(x,y);
}
public static void changeXY(int……
[/Quote]
java 语言传参是传值的,你的那个传引用在C++中可以,但在java中不好使。
要想交换全局变量x,y的值,还是使用this吧,否则是瞎子点灯——白费蜡。
kiss601459202 2011-08-27
  • 打赏
  • 举报
回复
public static void changeXY(int& x, int& y)
int& x, int& y 是什么意思 当是c++?
java 参数直接用 int x ,int y 就可以了 调用 changeXY(x,y)直接传递参数

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧