给定的程序是否定义良好?
#include <stdio.h>
int main()
{
int a=2,*f1,*f2;
f1=f2=&a;
*f2+=*f2+=a+=2.5;
*f1+=*f1+=a+=2.5;
printf("\n%d %d %d\n",a,*f1,*f2);
return 0;
}
最佳答案
不,*f2 += *f2 += ...
的位已经是未定义的行为。对同一对象进行多次修改,但没有中间的序列点。不用再看了。
关于c - C程序困惑,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3783741/