给定的程序是否定义良好?

#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/

10-12 22:17