1
不能在静态方法里面(main)调用非静态方法(fermin)

解决方案 »

  1.   

    void fermin(int i){
                    i++;
            }
    是没有返回值的
    i在方法完后为-1(我猜的)
      

  2.   

    楼上的不论把inc.fermin(i);还是i = i++;注释掉,
    答案都是0
      

  3.   

    显而易见:输出为0inc.fermin(i);//i的值不会变,因为是传值调用,i=0
    i = i++;   //i先赋值先自增,然后从堆栈中返回0赋给i,so i=0
      

  4.   

    选4
    inc.fermin(i); 传值调用i的值不会变
    i = i++;   i先赋值后自增(此时i还是0输出0)
      

  5.   

    public class Inc{
    public static void main(String argv[]){
                    int i =0;
                    i = i++;
                    i = i++;
                    System.out.println(i);
            }
    }
    答案还是0
      

  6.   

    public class Inc{
    public static void main(String argv[]){
                    int i =0;
                    i = i++;
                    i = i++;
                    System.out.println(i);
            }
    }
    这样也是0
      

  7.   

    to hexiaofeng 你说
    i = i++;   i先赋值后自增(此时i还是0输出0)
    既然i自增了,为什么还是0呢?
    能不能详细解释一下
      

  8.   

    关于自增因为我学过C,所以还有些了解
    如果是
    public class Inc{
    public static void main(String argv[]){
                    int i =0;
                    int j; 
                    j = i++;
                    System.out.println(j);
                    System.out.println(i);
            }
    }
    我想这时结果应该会是
    0
    1
    吧我没有验证。
    如果换成
    I=0;
    I=i++;
    的话
    按先赋值再自增的原则
    I在得到0的值后应该还自增吧
    但结果是0
    那么那个自增跑哪儿去了呢
      

  9.   

    选4
    inc.fermin(i); 传值调用i的值不会变
    i = i++;   i++是先用后加,所以赋给i的值还是0;
    如果改成++i的话,是先加后用,则结果就是1了。
    如果还不明白的话,去掉赋值,将i = i++;改成
       i++;
    则输出也是1。
    这和C语言是一样的。
    本题的考点就是两个:参数传递,++i和i++的区别。搞清楚了这道题,以后再碰到同类型的题目肯定不会出错了,当然,细心也很重要。
      

  10.   

    main()
    {
    int i = 0;
    i = i++;
    i = i++;
    printf("%d\n",i);
    }
    在turboc2中运行的结果是2。
      

  11.   

    public class Inc{
    public static void main(String argv[]){
                    int i =0;
                    i = ++i++;
                    i = ++i++;
                    System.out.println(i);
            }
    }
    这样的结果是2。
    大家讨论啊
      

  12.   

    顺序:
    int i=0;   // now i=0;
    i ++ ;
    System.out.println(i);     // now i=1,but print 0;
    i=i; // none doing
      

  13.   

    上面写错了,应该是
    public class Inc{
    public static void main(String argv[]){
                    int i =0;
                    i = ++i;
                    i = ++i;
                    System.out.println(i);
            }
    }
    这样的结果是2。
      

  14.   

    这个问题以前讨论过,
    i=0;
    i=i++; java i=0 如果 c++ i=1正确的解释是堆栈的过程有个顺序,本人菜鸟,所以无法细说了.可以看
     
    http://www.csdn.net/expert/TopicView.asp?id=163768 
    http://www.csdn.net/expert/TopicView.asp?id=182204 
    http://www.csdn.net/expert/TopicView.asp?id=182755