C - if语句可以更改变量的值

时间:2014-07-10 16:50:43

标签: c

例如:

if(mvwinch(win,y,x=(oldx-1))=='X')

变量的值是' x'现在改变了?

3 个答案:

答案 0 :(得分:5)

在比较之前,将评估两个表达式,并且在评估期间可能发生任何副作用。所以,是的x会被修改。

答案 1 :(得分:1)

是的当然,让我用一个简单的例子来证明

#include <stdio.h>

main()
{
    int a=5;
    int x=3;
    int c=10;
    if((c=(x>5)?20:30))
    //Do nothing
    printf("value of c = %d",c);

}

程序的输出是

value of c = 30

这意味着 if 条件中的三元opeartor已为变量 c 指定新值30 )分配新值。由hacks

解释

答案 2 :(得分:1)

你需要使用'mvwinch'。它应该在做出改变之后起作用。