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

来源:互联网 发布:水杉4什么软件 编辑:程序博客网 时间:2024/05/03 09:55

今天去面试,跟面试官说了不到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。

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

0 0
原创粉丝点击