这个C程序的输出应该是什么?
int main()
{
    int x=1,y=1,z;
    if (z=(y>0)) x=5;
    printf("%d %d",x,z);
    return 0;
}
正如所料,输出X是5,Z是1.这是因为当表达y> 0时,它是真的,依此类推.现在问题在于这个程序:
int main()
{
    int x,y;
    for (y=1;(x=y)<10;y++)
    ;
    printf("%d %d",x,y);
    return 0;
}
输出不应该是一个无限循环?原因是,(x = y)总是返回true(1),总是小于10?