|
|
教学公告
课件疑问
[作者:
肖菁 发布时间:2019-10-29 11:07:44 浏览次数:804次]
课件中有:
若x=4,y=5,则 i=++x==5||++y==6 ; i,x,y的取值分别为多少?
这个表达式C++会做短路处理,就是||前面部分如果是为真的话;那么 || 后面的无论是否为真, || 的结果都是为真,此时C和C++就不做后面那个东西了。
答案是 1 5 5
x开始是4,前置++后就是5
所以||的前半部分为1,导致 || 短路,后面代码不做;即y并没有自增了
故y的值从未变化过,还是5。
同样,&&运算符如果前部分是0的话,后面部分也不做运算了。
i=x++==5&&y++==6; 的话 y部分也没有做运算了。