This has been asked before (I cannot find the previous question though...)
TL;DR; This question does not have a single solution. It depends on the compiler.
Please, read this (external) thread.
The problem here is that the C standard does not specify in what order the arguments should be processed for a function call. Similarly, in the linked thread, the problem is that the C standard does not specify for the addition operator whether the left or the right side should be evaluated first.
Just try various compilers and (e.g. GNU C, Microsoft C, Turbo C, etc) and you'll see how the result changes.