为什么会发生此错误[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();