比如C 语言 能实现1个函数 某类型 X函数 fun (X)
{
}
X 是出参, X是某指针或地址,传进来后,函数执行完后 修改了X地址所存放的东西,这样X 里的东西就被修改了,并且得到保存我想问的是 JAVA 有类似的机制吗?
{
}
X 是出参, X是某指针或地址,传进来后,函数执行完后 修改了X地址所存放的东西,这样X 里的东西就被修改了,并且得到保存我想问的是 JAVA 有类似的机制吗?
解决方案 »
- 跪求java的浮点数正则表达式
- 我是初学者,第一天就遇到这个问题了,
- Java版的DataSet有人有兴趣吗?
- 【请问】搞Java的在被北京想拿到7K的月薪,大约需要怎样的水平
- 运行一个关于栈的例子,有几个错误,不知是什么原因,请大家赐教。
- 简单问题拉,大家帮忙解决!
- 底层代码的“底层”应该用那个单词,在线等,十万火急。
- 利用jtree动态创建jtable的问题
- 有谁懂打印吗?如何获得打印机的分辨率!谢绝废物参观,面斥不雅
- 创建一个类MyMath,并为其添加一个方法Add,实现两个整数相加,并重载该方法,实现两个字符串的相加。(知识点:重载方法)
- 哪位能解释下为什么结果是2 和-2
- 请教如何在两个界面之间传递值?
可以实现的一例子:public class T1 {
public static void main(String args[]) {
String strs[] = {"1","2"};
System.out.println(strs[0]);
pro(strs);
System.out.println(strs[0]);
}
static void pro(String[] strs){
strs[0] = "3";
}
}输出为:
1
3
int i = 10;
int* p = &i;
change(p);
printf("%d", i);
}void change(int* p) {
int j = 20;
p = &j; //这里的改变不影响main的p,注意这里是改变了指针的指向
//如果LZ指的是这个,那么连C的指针传递也做不到,C++的引用传递能做到
//*p = 20; //把上面的语句注释掉,放开本条语句的注释,那么这里的改变能影响p
//如果LZ指的是这个,那么C能做到,注意这里并不是改变p的指向,而是改变p指向的地址的内容
//java除了基本类型(包括基本类型的封装类型)和String外,也能做到。
}所以LZ就不要费尽心机去讨论如何用一个方法去改变方法外的一个变量了,连C都做到(C++
的引用传递能做到),能做到的只是改变和方法外的变量指向相同的地址的内容。
//java除了基本类型(包括基本类型的封装类型)和String外,也能做到
基本类型的封装类型如,Integer,Long等等
The C Programming Language和The Java Programming Language两本书里都说自己只有“值传递”一种方式。
所以,传参方面,理解了c也就理解了java