我要做的是将这个C ++函数转换为Java:
void print(int x[], int l)
{
if (l != 0) {
cout << x[0] << ",";
print(x+1,l-1);
}
}
这是我想要做的,但它不起作用:
void print(int x[])
{
if (x.length != 0) {
cout << x[0] << ",";
print(x + 1); //<--- ERROR!
}
}
有人有什么想法吗?
答案 0 :(得分:8)
Java没有与C ++相同的指针。也就是说,您无法沿阵列进一步“移动”数组指针x
。我建议将起始索引传递给你的函数:
void print(int x[], int start)
{
if (start < x.length) {
if (start > 0) {
System.out.println(x[start] + ",");
}
print(x, start + 1);
}
}
答案 1 :(得分:0)
在Java中,数组具有length
属性,因此您甚至不需要经历任何这些废话:
void print(int[] x)
{
for (int i = 0; i < x.length; i++)
System.out.print(x[i] + ",");
}