kau*_*ray 4 c undefined-behavior sequence-points
在以下代码中
int main(){
int a=3;
printf("%d %d %d",++a,a,a++);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
按照规定,从C99附录C:,
以下是5.1.2.3中描述的序列点:
计算函数参数的顺序是未定义的,如C标准所指定.
但是,在printf的函数调用中,我们有用逗号分隔的参数,它们被分类为序列点.那么为什么这个陈述对应于未指明的行为呢?
P.P*_*.P. 12
因为逗号函数调用是不是在逗号操作符,但一个分隔符.所以它没有引入任何序列点.