请教这样的语句如何理解

请问这样的语句怎么理解。
#include   "stdio.h "

void   main()
{
int   a=1,b=2,m=0,k;
k=1||(m=a+b);
printf( "%d,%d ",k,m);
}

结果是   1,0
m   作了复值运算,怎么和1作了||运算后,m就是0了?

------解决方案--------------------
1||(m=a+b);
短路运算,当前面为真,就不再运行后面的条件

类似的还有
0 && (m=a+b);
当前面为假,也就不再运行后面的条件

就好比,
if(...)
m=a+b;
else
NULL;