将C++代码转换为JAVA

Converting C++ code to JAVA

本文关键字:JAVA 转换 代码 C++      更新时间:2023-10-16
#include <iostream>
using namespace std;
int fun(int *k);
int main() {
    int i = 10, j = 10, sum1,sum2;
    sum1 = (i / 2) + fun(&i);
    sum2 = fun(&j) + (j / 2);
    cout<< sum1<< " "<<sum2<<endl;
}
int fun(int *k) {
    *k += 4;
    return 3 * (*k) - 1; 
}

我必须将我的代码转换为我已经转换过的Java代码,但我找不到我的错误——我不能将变量指向彼此。。

public class System{
   public static void main(String[] args) {
      int i = 10;
      int j = 10;
      int sum1 = (i / 2) + fun(k.value=i);
      int sum2 = fun(k.value=j) + (j / 2);
      System.out.println("%d%d",sum1,sum2 );
   }

   public static int fun(int k) {
      intobj k;
      int k= new k();
      k.value += 4;
      return 3 * (k.value) - 1; 
   }
}

当我看到int sum1=(i/2(+fun(k.value=i(时,这是我的java代码;int sum2=fun(k.value=j(+(j/2(;关于指向真值的部分并不正确。我怎样才能解决指针的问题。非常感谢。

问题是,您使用的是ints,而不是intobjs,您希望通过引用传递内容(c++中的&(。

在主函数中,应该尝试将ij声明为intobjs,并且funk的参数也应该是intobj

代码:

public class System{
   
   public static void main(String[] args) {
      intobj i = new intobj();
      i.value = 10;
      intobj j = new intobj();
      j.value = 10;
     int sum1 = (i.value / 2) + fun(i);
     int sum2 = fun(j) + (j.value / 2);
      System.out.println("%d%d",sum1,sum2 );
   }

   public static int fun(intobj k) {
      
      k.value += 4;
      return 3 * (k.value) - 1; 
   }
}