what you are saying is correct. '|' has higher precedence then '&&' and Associativity is left to right. That means the expression left to | will evaluate first.
In this example "if(fun1() && fun2() | fun3())" expression "fun1() && fun2()" is left to that | so it will evaluates first then fun3(). To evaluate this "fun1() && fun2()" first it will execute fun1(),if its true then it will execute fun2()
i hope this will clear your doubt
[ July 16, 2008: Message edited by: winay Kumar ]