紧急求助啊,关于基本类型的值传递和封装类的引用传递
话说在java中,像int long double这种基本类型作为参数的时候是值传递对吧?直接拷贝一份,在函数中修改参数值是不影响传递进来的变量值的。
不过不是说java中所有的对象都是引用传递的么?
话说我最近在做一个c++的项目的移植,里面有好多函数,需要同时返回n个返回值,就直接把需要得到返回值的指针传递给函数,这样函数能够直接把需要返回的值写到传递进来的指针里头。。。
话说如果我有这样的函数
public static void change(Long num){ num=1000;}
Long a = new Long(1);change(a);System.out.println(a);
void change1(int* a) { int b = 10; a = &b; //这个叫改变指针的指向}void change2(int* a) { *a = 10; //这个叫改变指针指向的内容}void main() { int a = 5; change1(&a); printf("%d\n", a); change2(&a); printf("%d\n", a);}
[解决办法]
//修改如下,仅供参考:class Main { public static Long change(Long num) //将改动的引用返回 { num=1000l; //需要加“l” return num; } public static void main(String[] args) { Long a = new Long(1); System.out.println(change(a)); //接收返回引用,再处理 } }