面试题---1

题目如下:(此题为php初级面试题之一)

$a=1;

$b=++$a;

$c=$b++;

$d = $c==$a?($b==$c?$a:$b):$c;

求:$a,$b,$c,$d的值?

1.首先我们应该弄明白$a++与++$a的区别;

2.然后要明白--?-:-  这串字符的意义;

解读:

    1.$a++的意思为先执行,后加1,举例:$a=1,则经过$a++操作后,$a=2,但是此时$a++=1,

       ++$a则是先相加,举例:$a=1,则经过++$a操作后,$a=2,  ++$a也为2;

验证:

int a=1;
int b=1;
int c=a++;
int d=++b;
printf("a=%d\n",a);
printf("b=%d\n",b);
printf("a++= %d\n",c);
printf("++b= %d\n",d);

 

    2.明白--?-:-的含义:?前面的是判断条件,后面的是判断完后要执行的语句,条件为true时,执行":"前面的语句,反之,执行后面的语句;举例:$a=1,$b=2,$c=$a>$b($a):$b,此时结果为2,此式的效果如:

if($a>$b)
{
     $c=$a;
}
else
{
     $c=$b;
}

了解完上述两点之后,可以毫不费力的得出答案:

$a=2;  $b=3;  $c=2;   $d=3;

解析:

    $d = $c==$a?($b==$c?$a:$b):$c;的计算过程:$c==$a  =true, 所以执行($b==$c?$a:$b), $b==$c =flase, 所以执行$b;

 

    经过多次面试,虽然说很多都被拒,但是感觉收获了很多,收获的最大一点就是:越正规的公司越注重基础,感觉在学校学的内容都很重要,尤其是c与数据结构,无论将来从事哪方面的语言编程,面试官问到的问题有一半多都是与之相关的;

个人观点,欢迎个位博友指出不足之处;


 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值