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

()括号算运算符?//怎么知道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的值。