黑光图库婚纱照:来吧—看看!

来源:百度文库 编辑:高校问答 时间:2024/05/01 20:49:56
mail()
{
iint i=1,j=1,k=2;
if ((j++|| k++)&&i++) printf ("%d,%d,%d",i,j,k);
} 输出的结果是?为什么是这样的?

输出结果是 2,2,2 啊,你认为会是怎样的呢?
主要就是表达式 ( j++ || k++ ) && i++ 的计算过程,步骤是这样的:
1. 先计算表达式 ( j++ || k++ )
(1) 先看前半部分的 j++ ,为真,所以后面的 k++ 并不参与计算
(2) 所以,此时,j=2,k=2
2. 前面的表达式为真,故需要计算后面的表达式 i++
计算后 i=2 ,也为真,所以,需要执行printf语句。

就是这样了。

出错,因为,iint没有这个函数!

那如果,j=-1,j++就是为0,那表示j++部分为假,则运算k++部分,是不是这样啊,请人纠正

同意,答案为2, 2, 2
if((j++|| k++)&&i++)中j++已经为TRUE,故不会执行k++,这是关键

2,2,2