先从!p开始,符号“!”即为“非”的意思,逻辑运算符中否定的意思,如果此处p为false或者null的话,那么!p就是true了,后面的一个就不解释了,判断括号内的条件是否为true,|| 是逻辑运算符“或”,它的意思是只要“或”的前面的一个或者后面的一个条件为真,那么这个括号内的条件就为真,如果前面和后面的条件都为false的话,这括号内的值就一定为false了。
!p相当与p==0,j>i自然不用解释,||是或运算,其中一个满足就为真
!p!=0 或者j>i 满足其中一个(!p||j>i)就为真。