问题求解:scjp题目------请回答后做出合理的解释/thanks 1不能在静态方法里面(main)调用非静态方法(fermin) 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 void fermin(int i){ i++; }是没有返回值的i在方法完后为-1(我猜的) 楼上的不论把inc.fermin(i);还是i = i++;注释掉,答案都是0 显而易见:输出为0inc.fermin(i);//i的值不会变,因为是传值调用,i=0i = i++; //i先赋值先自增,然后从堆栈中返回0赋给i,so i=0 选4inc.fermin(i); 传值调用i的值不会变i = i++; i先赋值后自增(此时i还是0输出0) public class Inc{public static void main(String argv[]){ int i =0; i = i++; i = i++; System.out.println(i); }}答案还是0 public class Inc{public static void main(String argv[]){ int i =0; i = i++; i = i++; System.out.println(i); }}这样也是0 to hexiaofeng 你说i = i++; i先赋值后自增(此时i还是0输出0)既然i自增了,为什么还是0呢?能不能详细解释一下 关于自增因为我学过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); }}我想这时结果应该会是01吧我没有验证。如果换成I=0;I=i++;的话按先赋值再自增的原则I在得到0的值后应该还自增吧但结果是0那么那个自增跑哪儿去了呢 选4inc.fermin(i); 传值调用i的值不会变i = i++; i++是先用后加,所以赋给i的值还是0;如果改成++i的话,是先加后用,则结果就是1了。如果还不明白的话,去掉赋值,将i = i++;改成 i++;则输出也是1。这和C语言是一样的。本题的考点就是两个:参数传递,++i和i++的区别。搞清楚了这道题,以后再碰到同类型的题目肯定不会出错了,当然,细心也很重要。 main(){int i = 0;i = i++;i = i++;printf("%d\n",i);}在turboc2中运行的结果是2。 public class Inc{public static void main(String argv[]){ int i =0; i = ++i++; i = ++i++; System.out.println(i); }}这样的结果是2。大家讨论啊 顺序:int i=0; // now i=0;i ++ ;System.out.println(i); // now i=1,but print 0;i=i; // none doing 上面写错了,应该是public class Inc{public static void main(String argv[]){ int i =0; i = ++i; i = ++i; System.out.println(i); }}这样的结果是2。 这个问题以前讨论过,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 本人想自己做个小项目练手 不知道做什么样的项目 问个线程问题~主线程与自创的线程 j2se学到什么地步才算是学好? 怎样才能读取JTextArea里面指定的某一行的数据? 新手请教如何设计类似游戏的server/client程序 装了j2sdk1.4.2怎么D:\j2sdk1.4.2\demo\jfc\Java2D\Java2Demo.html不能显视?? 刚学JB的疑惑?请前辈们指点一条名路!!!!!! 请问几个小问题,每题5分,来赚吧。 类的互访问 如何取出这个obj里面的数据啊 Java数据库编程的问题,欢迎大家讨论。 一个简单的问题?见者有分
i++;
}
是没有返回值的
i在方法完后为-1(我猜的)
答案都是0
i = i++; //i先赋值先自增,然后从堆栈中返回0赋给i,so i=0
inc.fermin(i); 传值调用i的值不会变
i = i++; i先赋值后自增(此时i还是0输出0)
public static void main(String argv[]){
int i =0;
i = i++;
i = i++;
System.out.println(i);
}
}
答案还是0
public static void main(String argv[]){
int i =0;
i = i++;
i = i++;
System.out.println(i);
}
}
这样也是0
i = i++; i先赋值后自增(此时i还是0输出0)
既然i自增了,为什么还是0呢?
能不能详细解释一下
如果是
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
那么那个自增跑哪儿去了呢
inc.fermin(i); 传值调用i的值不会变
i = i++; i++是先用后加,所以赋给i的值还是0;
如果改成++i的话,是先加后用,则结果就是1了。
如果还不明白的话,去掉赋值,将i = i++;改成
i++;
则输出也是1。
这和C语言是一样的。
本题的考点就是两个:参数传递,++i和i++的区别。搞清楚了这道题,以后再碰到同类型的题目肯定不会出错了,当然,细心也很重要。
{
int i = 0;
i = i++;
i = i++;
printf("%d\n",i);
}
在turboc2中运行的结果是2。
public static void main(String argv[]){
int i =0;
i = ++i++;
i = ++i++;
System.out.println(i);
}
}
这样的结果是2。
大家讨论啊
int i=0; // now i=0;
i ++ ;
System.out.println(i); // now i=1,but print 0;
i=i; // none doing
public class Inc{
public static void main(String argv[]){
int i =0;
i = ++i;
i = ++i;
System.out.println(i);
}
}
这样的结果是2。
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