为什么会发生此错误[JAVA]
此代码:为什么会发生此错误[JAVA],java,Java,此代码: import java.util.*; public class Fix { int Search(int arr[], int x,int n) { for (int i = 0; i < n; i++) if (arr[i] == x) return i; return 0; } void Func(int in[], int pre[], int n)
import java.util.*;
public class Fix
{
int Search(int arr[], int x,int n)
{
for (int i = 0; i < n; i++)
if (arr[i] == x)
return i;
return 0;
}
void Func(int in[], int pre[], int n)
{
int root=Search(in,pre[0],n);
if (root != 0)
Func(in,pre+1, root); //error
if (root != n-1)
Func(in+root+1, pre+root+1, n-root-1); //error
System.out.print(pre[0]+" ");
}
}
import java.util.*;
公共类修复
{
整数搜索(整数arr[],整数x,整数n)
{
对于(int i=0;i
错误点是:
Func(in,pre+1,root)
及
Func(in+root+1,pre+root+1,n-root-1)
为什么会发生这种情况?在C++中,这个错误没有发生。
< P> java不是C++。所以不能用C++的语法来做java的东西。 在Java中,不能对数组和int使用
+
。因此pre+1
将失败。此外,将数组增加1也没有任何意义
第二个错误基本上是相同的,将数组增加1根本没有任何意义
我想你想把数组指针增加1,对吗?如果你想这样做,请使用另一种语言!我们没有Java中的指针!他们根本不存在!Java中既不存在指针也不存在goto,因为Sun可能认为它们纯粹是邪恶的
有一个(糟糕的)解决办法。使用C#!C#使用这个不安全的关键字可以创建不安全的上下文:
unsafe {
}
在不安全的环境中,您可以使用指针、
stackalloc
和更多“不安全”的东西。然而,不安全的上下文在C#中非常罕见,除非必须,否则不要使用它们 为什么你认为你可以将一个整数数组添加到一个整数中?Java没有指针算术。程序员说了什么。如何用Java打印数组地址@신한강 Array.toString();