注册 登录
编程论坛 C++教室

初学编程遇到不解,请高手指点,万分感谢!

hmczj 发布于 2010-04-10 21:27, 392 次点击
小弟在书中的示例中有不解之处,望指点。谢谢。
#include<iostream.h>
void main()
{
    int i=10,j=15,n=0;
    n=i>j?i++:++j;
    cout<<"i="<<i<<"\tj"<<j<<"\tn"<<n<<endl;
    n=i-j?i+j:i-10?j:i;
    cout<<"i=1"<<i<<"\tj="<<j<<"\tn="<<n<<endl;
}

n=i-j?i+j:i-10?j:i;这句,在书中的解释不太明了,望高手赐教。
4 回复
#2
cnfarer2010-04-10 21:44
在n=i-j?i+j:i-10?j:i;之前i=10,j=16,执行到此句时:
因为i-j=-6,非0(即真),故n=i+j,因此计算结果n=26
#3
ltyjyufo2010-04-10 21:52
         
    n=(i-j)?(i+j):((i-10)? j : i );

i-j的值只能是0或者非0,  如果是非0的话就返回i+j的值。为0就在判断i-10的值,不为0时返回j,否则返回i



#4
hmczj2010-04-10 22:37
感谢以上二位的帮助
#5
阿标兄2010-04-14 20:32
长见识了
1