【发布时间】:2018-12-25 11:44:03
【问题描述】:
考虑下面的程序
#include <stdio.h>
void main(){
int p = -8;
int i = (p++, ++p);
printf("%d\n", i);
}
我无法理解为什么输出是 -6。
p++ 将在赋值语句执行后递增,++p 将在从 -8 变为 -7 之前递增。
i 是如何分配到 -6 的?
【问题讨论】:
-
++p的返回值是递增后的值,所以-6 -
我认为这是未定义的行为。 stackoverflow.com/questions/22817517/…
-
@AkshayLAradhya:再次,不。
,引入了一个序列点。
标签: c