原理我好像明白了,但是我就想在主方法里输出,fun方法就管将新对像通过地址传递改变源对象怎么办?
- 发现
- 1.C语言 2java
- #include <stdio.h> class java{
- void fun(char p[] ){//char *p void fun( char [] p ){
- char code[]={'4','5','6','7'}; char []code={'4','5','6','7'};
- p=code//此时p所指的对象本身发生了变化 p=code; ///应该只是对象句柄转移
- } //如果参数改为char p[4]是传值像java的克隆 } //不会干扰传来的a数组
- void main(){ public static void main(String[]args){
- char a[]={'1','2','3','4'}; char [] a={'1','2','3','4'};
- fun( a ); printf("%s",a) // 输出4567 fun( a ); System.out.println(new String(a)); //输出1234
- } } }//System.out.println(a);将输出乱码地址
复制代码
|