并运算时,判断栈是否为空为什么要放在其它条件的前面(关键词-段错误)

并运算时,判断栈是否为空为什么要放在其它条件的前面
s.empty()||s.top()!=popV[i]//正确
s.top()!=popV[i]||s.empty()//报错,提示:段错误、溢出

这是利用了逻辑运算短路的特性
即s.empty()为 true,则根本不执行后面的表达式
反过来写,先执行后面的,就报错了。