int i = 3; int j = (i)++;
int i = 3; int j = i ++;
Though both of the above examples store 3 in
j, is there a difference between how the above two cases are evaluated?
i is an
int, do the
() cause the first case to be evaluated as an expression, which would be equivalent to incrementing an rvalue? Or is it undefined behaviour and just happens to store 3 in
Or am I overthinking it and its just a simple postfix?
(i)++ behave identically. C 2018 6.5.1 5 says:
A parenthesized expression is a primary expression. Its type and value are identical to those of the unparenthesized expression. It is an lvalue, a function designator, or a void expression if the unparenthesized expression is, respectively, an lvalue, a function designator, or a void expression.