若已有若变量均以正确定义并赋值:intx=0,y=2; 则执行if(x=0)y=1+x;elsey=x-1;后,y的值为( ) A.-1 B.0 C.1 D.2

还是2因为或运算符有短路求值嘚特性,前面一个条件只要为真就不计算第二个了程序执行了x=5的操作后,x被赋值5然后把5返回给或运算符判断,因为5 >0返回为真,或运算符就短路求值而不计算y=6*x这个赋值表达式y还是2。

你对这个回答的评价是

}
(但与我运行结果不符,我的运行结果很 (但与我运行结果不符,我的运行结果很离奇)展开 全部
}

楼主,你要注意,prt(a,b) 是“宏”,不是函数.

  因此,原始代码看起来很迷惑人的!

因为在编译前,是要进行宏替换的,因此,我们先看看宏替换之后的代码:

//这样仍然有点“迷惑人”

最终结果,就是x和y的值都为 0 了.

}

我要回帖

更多关于 设有如下定义 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信