读书人

()括号算运算符?//如何知道x=1还是0呢?

发布时间: 2013-09-28 10:01:20 作者: rapoo

()括号算运算符?//怎么知道x=1还是0呢???
#include "stdafx.h"


int _tmain(int argc, _TCHAR* argv[])
{
int j = 1;
int x;
int r;
printf("%d\n",(j?x=1:x=0)?r=1:r=0);
return 0;
}

[解决办法]
先不说C语言里的运算符优先级,你数学式子里的()总该知道是什么意思吧,这里也一样,比其他语句都要优先执。

j?x=1:x=0是一句三目运算符,换成if语句就是


if(j)
x=1;
else
x=0;

这里有2层?:,先算()里的,根据j的值是否非0来判断x为1还是0,然后根据x的值判断r为1还是为0,最后输出结果r的值。

读书人网 >C++

热点推荐