well-defined-behavior

is `x-- > 0 && array[x]` well defined behavior in c++?

can i use x on both sides of a boolean expression when I post-increment it on the left side? the line in question is: if(x-- > 0 && array[x]) { /* … use x … */ } is that defined through the standard? will array[x] use the new value of x or the old one? ...