猿问

以下C语言语句在java中怎么实现等同功能

int *a;
a = &b;

C和java都是初学者水平的在下,目前正在做将一个C程序移植到java的工作,很多指针功能不知道如何在java中实现,希望有大神能帮忙解答!最好解释一下原理!小弟万分感谢!

JustV
浏览 1341回答 1
1回答

阿旭_

在java中没有指针的概念,倒是有个引用的类似概念,相同点是都是保存地址,不同点是C中的地址可能通过int型来保存,java中的地址必须是Object类型。换话句说,java中保存地址的只能是Object类型,而C中int型即可以保存地址(指针)又可以保存一个数值。简单讲要实现这样一个功能,java写起来会比较复杂,但是如果熟练起来会觉得比C好理解不容易出错。以你问的为例。代码如下。public class Test23 { public int c = 5; public static void main(String[] args) { Test23 b = new Test23(); Test23 a = null;// 如果写成int,就只能保存值,而不能保存地址了。 a = b;// 地址只能保存其它地址 /* 这里用c的输出格式给你演示,方便你理解,但通常java是不用这种输出格式的,而是System.out.println(a.c);即可 */ System.out.printf("%d", a.c); } }
随时随地看视频慕课网APP
我要回答