Java处处是指针啊。你这里使用的indexs就是一个引用。当然就是输入,如果
对其修改了,那么也就是输出了啊。Java处处是引用。引用!!!!

解决方案 »

  1.   

    基本类型 int, long, char 等等,包括 String 是传值的。
    你这样用不行。你可以 int [] indexs = new int[1];  find(tofindstr,vessel,indexs){
        indexs[1] = 12345;
      }
      

  2.   

    java 所有对象引用(包括数组)都是指针。只不过不支持一般的(加、减)指针运算而已。  find(tofindstr,vessel,indexs){
        indexs[0] = 12345;
      }不好意思,上面搞错了。
      

  3.   

    有什么办法能indexs既为输入参数,同时又可作输出参数?
    (我想把字符的位置作为一个参数)
    这是参数传递中byvalue或者byref的问题,
    不幸的是java对于int,char之类的类型是用byvalue
    而对于object则用byref,
    所以,如果非常想“输入参数,同时又可作输出参数?”,可以考虑传递一个Integer类型的参数
      

  4.   

    本人JAVA还没入门,谁能帮我将上面的代码改一下,急!
      

  5.   

    为什么不这么做?  :
    public static int find(String instr,String[] vessel){
      ....
      return 1;
    }
      

  6.   

    难道JAVA就不能像C++那样做吗?
      

  7.   

    错:Java 中处处是指针, 而不是引用
    如果是引用的话 indexs 就可以改变了问题很好解决
    函数声明:
    public static void find(String instr,String[] vessel,int indexes[]){
      ...
      indexes[0] =  结果;}调用:
    int indexs=new int[1];
    find(tofindstr,vessel,indexs);indexs[0] 就是你的结果