今天面试时,碰到的经典问题++i与i++

今天去面试,跟面试官说了不到3句话,被面试官以他们不找暑假实习工被拒。站了两个小时的公交的我心里很不爽,旁边有个培训班出来的哥们正在做他们的C语言面试题。我凑过去看了看C语言题目大致如下(我用java写的):

int  a=9,b=10,c;
c=(++a==b--)?++a:b--;
System.out.println(a);
System.out.println(b);
System.out.println(c);

那哥们也不会,我就给了他了一只手。。。。。说真的,其实 ,我当时也不会。我把他给坑了。

后来回来,我在机器上跑了跑,发现结果如下:11     9      11  。

其中涉及两个知识点:

 ?:为条件表达符,其应用类似如下(a>b)?a1:b1     如果(a>b)为真则值选择a1,否则b1。

先求表达式1的值, 如果为真, 则求表达式2 的值并把它作为整个表达式的值。如果表达式1 的值为假, 则求表达式3 的值并把它作为整个表达式的值。


++i  是i先加后比较,i++是i比较后加。 减号类似,而(++a==b--)?++a:b--;  ++a后  a的值为10,此时,(++a(10)==b(10)),执行++a==b--)中的b- -(9)然后在求++a(11),同时将其赋值给c。

然后,当我给那哥们说完这个题目之后,我就被赶出来了。

阅读更多
个人分类: 面试
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

不良信息举报

今天面试时,碰到的经典问题++i与i++

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭