论坛首页 招聘求职论坛

关于++的一道面试题

浏览 10207 次
精华帖 (0) :: 良好帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2010-10-03  
JAVA 基础啊

J++是先赋值,再运算
++J是先运算,再赋值
0 请登录后投票
   发表时间:2010-10-03  
感觉面试的经常就是从题库里拿一些题来的,而这些题又很少真的会在现实编程中遇到
0 请登录后投票
   发表时间:2010-10-03   最后修改:2010-10-03
wmcoo 写道
JAVA 基础啊

J++是先赋值,再运算
++J是先运算,再赋值


看清楚这个题目,是j=j++;按你说的j++是先赋值再运算,那应该是先j=j;然后又j=j+1;那结果应该不是j=0;的呀

重要的是j=j++;这块在c语言和java中是一样的处理机制的
1 请登录后投票
   发表时间:2010-10-03  
wenjinglian 写道

面试碰到这样一道题

public static void main(String args[]){
 int j = 0;
 for(int i = 0 ; i < 100 ; i ++)
  j = j++;
 System.out.println("j = " + j);
}

 

四个选项:

A.99   B.100  C.0  D.1

 

我当时想了下,选择了B。

 

面试时看见答案打了个X,回家试了答案确实不对。

 

还是有点疑惑。

给他写==你妹

见到这样的题目,转身就走。不值得浪费时间。

0 请登录后投票
   发表时间:2010-10-04  
我还以为j=99呢
运行一下,结果j=0
0 请登录后投票
   发表时间:2010-10-04  
以前还真没有认真想过这样写i=i++ 呢
0 请登录后投票
   发表时间:2010-10-05  
同bs这样的面试题
0 请登录后投票
   发表时间:2011-04-10  
说下我的理解吧
首先i,j都是基本数据类型,所以应该是分配栈内存
j++会在分配新的内存空间K
但这个j++变量的作用域仅局限在for{ }中,所以当执行流完成for循环后
K的内存空间被销毁,再赋值的话,应该还是0
自己瞎想的,欢迎拍砖
0 请登录后投票
论坛首页 招聘求职版

跳转论坛:
Global site tag (gtag.js) - Google Analytics