int i = 3;
int j = (i)++;
VS
int i = 3;
int j = i ++;
上述两种情况的判断方式是否存在差异?
第一种情况等同于递增右值还是它是未定义的行为?
int i = 3;
int j = (i)++;
VS
int i = 3;
int j = i ++;
上述两种情况的判断方式是否存在差异?
第一种情况等同于递增右值还是它是未定义的行为?
i++
和(i)++
的行为相同.C 2018 6.5.1 5规定:
带括号的表达式是主表达式.它的类型和值与未附加主题的表达式的类型和值相同.如果未细化的表达式分别是左值、函数指示符或空表达式,则它是左值、函数指示符或空表达式.
C 1999中的措辞相同.