Albatross
You need to back off. Though badly-translated (as is always the case with machine translation), the text is correct, though a bit scattered (it thinks across a wide range of theory without being careful to distinguish where the underlying assumptions change).
The problem is that
justAbeginner has misunderstood some of the information given to him. For example
thing is that in some complex calculations as b=a++*c you do not know what will happen. |
The thing is that that calculation is
precicely defined; the value of
b is deterministic. Where this not the case then no program could be reasoned about, and programming would be just luck, instead of careful thought.
What is
not defined is when the variable
a's value is
actually modified by the computer: before, during, or after the calculation is finished and assignment to
b is done. In this particular calculation, it makes absolutely no difference to the programmer -- so long as everything is properly completed before the next line of code begins.
When it
does make a difference is when you endeavor to apply multiple side effects to the same object between two adjacent sequence points, such as:
b = a++ * ++a;
You cannot know what
b's value will be because you are relying on
a's value during a time when its value is not clearly defined -- remember, the compiler can modify
a at any point before, during, or after the calculation. And since it can be modified that way, there is no way for the computer to reasonably know what values to use in the calculation.
Hope this helps.