== sign是什么意思?

时间:2010-09-02 05:22:08

标签: c syntax operators

我想弄清楚这个程序中的== sign意味着什么?

int main()
{
    int x = 2, y = 6, z = 6;        
    x = y == z;
    printf("%d", x);
}

8 个答案:

答案 0 :(得分:20)

==运算符测试是否相等。例如:

if ( a == b )
    dosomething();

而且,在你的例子中:

x = y == z;
如果y等于z,则

x为真(1)。如果y 等于z,则x为假(0)。

新手C程序员常犯的错误(以及一些非常有经验的错误)也是:

if ( a = b )
    dosomething();

在这种情况下,b被分配给a然后被评估为布尔表达式。有时程序员会故意这样做,但这是不好的形式。另一个阅读代码的程序员不会知道它是故意(很少)还是无意中(更有可能)。一个更好的结构将是:

if ( (a = b) == 0 )   // or !=
    dosomething();

这里,b被分配给a,然后将结果与0进行比较。意图很清楚。 (有趣的是,我和C#程序员一起工作过,他们从来没有写过纯粹的C,也无法告诉你这是做什么的。)

答案 1 :(得分:5)

是“等于”操作符。

在上面的示例中,x被赋予了相等性测试(y == z)表达式的结果。因此,如果y等于z,则x将设置为1(true),否则为0(false)。因为C(pre-C99)没有布尔类型,所以表达式求值为整数。

答案 2 :(得分:4)

平等。如果操作数相等则返回1,否则返回0.

答案 3 :(得分:2)

==表示“等于”。此运算符的优先级高于=(等于)运算符。等式x = y == z;将尝试将y == z的结果分配给变量x。在这种情况下为1。

答案 4 :(得分:1)

int main() 
{ 
    int x = 2, y = 6, z = 6;         
    x = y == z; 
    printf("%d", x); 
} 

让我们这样开始:

 x = (6==6)

它要求6相当于6?:true

x = true,但由于x是int,x = 1 x的新值是1。

打印以下内容:

1

答案 5 :(得分:0)

这是说

  

X将等于true / 1或false / 0。

查看该行的另一种方法是:

x =  ( is y equal to true? then true/1 or false/0 )

答案 6 :(得分:0)

==运算符用于平等.. 在这里以你的例子 如果y等于z则x将具有真值,否则x将为假

答案 7 :(得分:0)

这样想:

=意味着给出一些价值。

==表示检查它是否等于某个值。

例如

int val = 5; //val is 5
//= actually changes val to 3
val = 3; 

//== Tests if val is 3 or not. 
//note: it DOES NOT CHANGE the value of val.
val == 3; 

int new_val = val == 3; //new_val will be 1, because the test is true

//the above statement is the same as
bool is_val_3 = false;
if( val == 3 )
   is_val_3 = true;
int new_val;
new_val = is_val_3;

//putting it together, 
val = new_val == 2; //sets val to 0. do you understand why now?
相关问题