Finally, I got an explanation about this. After reading and FAQ, I concluded that;
1. Last sentence
In addition, the previous value should only be accessed to determine the value to be stored.
will be like this:
In addition, the first value of the object should be accessed only to determine the value of the changed / new ( the same object ) to be saved.
As seen in the example
int i = 1, j, a[5]; i = i + 1; j = i + 1; a[i] = i;
in the case of the expression i = i + 1 previous value (which is 1 here) i (in RHS) is available to determine the value of i to be stored, and this is what the operator
if the object is written within the full expression, any access to it inside the same expression should be directly involved in calculating the value that should be written,
He speaks.
If, in the case j = i + 1 and a[i] = i available value of i is just the value not , no, where i varies in these operators.
2. The second question can be explained as follows: In the case of the expression a[i] = i++ or a[i++] = i first sentence of the above statement
Between the previous and the next point in the sequence, the object must have a value that its stored value is changed no more than once by evaluating the expression.
could not be obtained , since i changes only once between two consecutive points of the sequence. And so we need a second sentence.
Both of these examples are forbidden in C because the previous value of i accessed twice, i.e. i++ itself gets access to the previous value of i in the expression to change it and, therefore, other access to the previous value / value of i useless, since it is not accessed to determine the changed value that needs to be saved.
haccks Jul 13 2018-12-13T00: 00Z
source share