考一个基本概念 下面的c程序,形参是2个指针,在函数体内对指针指向的内容进行修改,请写出对应的java程序(不许定义新类)。void func(int *a, int *b){ *a = 1; *b = 2;} 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 基本类型java中是传值的,java能解决的方法就是用类将a,b封装,然后把这个类作为参数 还有个折衷的办法:void func(int[] ab){ ab[0] = 1; ab[1] = 2;} Java是传值还是传引用? 5. 如何实现类似 swap 的方法 传值还是传引用的问题,到此已经算是解决了,但是我们仍然不能解决这样一个问题:如果我有两个 int 型的变量 a 和 b,我想写一个方法来交换它们的值,应该怎么办? 结论很让人失望——没有办法!因此,我们只能具体情况具体讨论,以经常使用交换方法的排序为例: /** 例 6 */ /** * @(#) Test.Java * @author fancy */ public class Test { public static void swap(int[] data, int a, int b) { int t = data[a]; data[a] = data[b]; data[b] = t; } public static void main(String[] args) { int[] data = new int[10]; for (int i = 0; i < 10; i++) { data[i] = (int) (Math.random() * 100); System.out.print(" " + data[i]); } System.out.println(); for (int i = 0; i < 9; i++) { for (int j = i; j < 10; j++) { if (data[i] > data[j]) { swap(data, i, j); } } } for (int i = 0; i < 10; i++) { System.out.print(" " + data[i]); } System.out.println(); } } 运行结果(情况之一): 78 69 94 38 95 31 50 97 84 1 1 31 38 50 69 78 84 94 95 97 swap(int[] data, int a, int b) 方法在内部实际上是改变了 data 所指示的对象的成员数据,即上述讨论的第二种改变参数值的方法。希望大家能够举一反三,使用类似的方法来解决相关问题。 http://www.javaeye.com/topic/12961http://www.bc-cn.net/Article/kfyy/java/jszl/200601/3069.html 代码求简单优化。。思想也可。谢谢 java se报表开发 java窗体跳转问题!急待解决!请各位朋友帮忙看看 jsp问题 一个关于jTree的问题 java的重拾者 怎么更改Application的图标?? java 和数据库问题,入门者编。 如何设置frame的背景颜色以及Button颜色等? Iterable接口求助 大家好,小弟有个关于HashMap的问题请教,多谢了 100分求救!!socket的InputStream.readyFully(byte[] b)一直阻塞不能返回??
void func(int[] ab){
ab[0] = 1;
ab[1] = 2;
}
/**
* @(#) Test.Java
* @author fancy
*/
public class Test {
public static void swap(int[] data, int a, int b) {
int t = data[a];
data[a] = data[b];
data[b] = t;
}
public static void main(String[] args) {
int[] data = new int[10];
for (int i = 0; i < 10; i++) {
data[i] = (int) (Math.random() * 100);
System.out.print(" " + data[i]);
}
System.out.println();
for (int i = 0; i < 9; i++) {
for (int j = i; j < 10; j++) {
if (data[i] > data[j]) {
swap(data, i, j);
}
}
}
for (int i = 0; i < 10; i++) {
System.out.print(" " + data[i]);
}
System.out.println();
}
} 运行结果(情况之一): 78 69 94 38 95 31 50 97 84 1
1 31 38 50 69 78 84 94 95 97 swap(int[] data, int a, int b) 方法在内部实际上是改变了 data 所指示的对象的成员数据,即上述讨论的第二种改变参数值的方法。希望大家能够举一反三,使用类似的方法来解决相关问题。