C语言程序运行结果为何是a=2??求大侠解释详细步骤

#include
main ()
{
int a=1,b=3,c=0,d=7,e=9,f=2,g=4,h=6,i=8,j=0,k=10;
a+=++b*c+--e/f-i%d?c--&++i?++b||--d:!j==1:k+++a;

printf("a=%d",a); 

}
/*
1.程序运行结果为:
a=2
*/

参考:http://www.guokr.com/blog/471312/

程序结果不确定。也就是说不同的编译器结果不同。