1.3.24
undefined behavior
behavior for which this International Standard imposes no requirements
[ Note: Undefined behavior may be expected when this International Standard omits any explicit definition of
behavior or when a program uses an erroneous construct or erroneous data. Permissible undefined behavior
ranges from ignoring the situation completely with unpredictable results, to behaving during translation or
program execution in a documented manner characteristic of the environment (with or without the issuance of
a diagnostic message), to terminating a translation or execution (with the issuance of a diagnostic message).
Many erroneous program constructs do not engender undefined behavior; they are required to be diagnosed.
— end note ]



1.3.25
unspecified behavior
behavior, for a well-formed program construct and correct data, that depends on the implementation
[ Note: The implementation is not required to document which behavior occurs. The range of possible
behaviors is usually delineated by this International Standard. — end note ]



1.9/15
Except where noted, evaluations of operands of individual operators and of subexpressions of individual
expressions are unsequenced.
[ Note: In an expression that is evaluated more than once during the execution of a program, unsequenced
and indeterminately sequenced evaluations of its subexpressions need not be performed consistently in
different evaluations. — end note ]
The value computations of the operands of an operator are sequenced before the value computation of the
result of the operator. If a side effect on a scalar object is unsequenced relative to either another
side effect on the same scalar object or a value computation using the value of the same scalar object,
the behavior is undefined.

[Example:
    void f(int, int);
    void g(int i, int* v)
    {
        i = v[i++];         // the behavior is undefined
        i = 7, i++, i++;    // i becomes 9
        i = i++ + 1;        // the behavior is undefined
        i = i + 1;          // the value of i is incremented
        f(i = -1, i = -1);  // the behavior is undefined
    }
— end example ]
