c语言中==和=有什么区别?

Python045

c语言中==和=有什么区别?,第1张

c语言中==和=只在意义一个方面有区别,具体如下:

“==”是关系运算符,而“=”是赋值运算符。

其中c语言中的关系运算符还有:

1、“!= ”  是不等于的意思。

2、“<  ”是小于的意思

3、“<=” 是小于等于的意思。

4、“>”是大于的意思

5、“>=” 是大于等于的意思。

扩展资料

关系运算符都是双目运算符,其结合性均为左结合。关系运算符的优先级低于算术运算符,高于赋值运算符。在六个关系运算符中,<、<=、>、>=的优先级相同,高于==和!=,==和!=的优先级相同。

在C语言中,有的运算符有两个操作数,例如 10+20,10和20都是操作数,+ 是运算符。我们将这样的运算符称为双目运算符。同理,将有一个操作数的运算符称为单目运算符,将有三个操作数的运算符称为三目运算符。

常见的双目运算符有 +、-、*、/ 等,单目运算符有 ++、-- 等,三目运算符只有一个,就是 ? :。

参考资料:百度百科-关系运算符

参考资料:百度百科-C语言

c语言中=和==的区别是“=”是赋值操作符,而“==”是关系操作符

在C语言中,最容易产生混淆的操作符要属“=”与“==”。其中,“=”并不等于符号,而是赋值操作符,如x=3。除此之外,还可以在一个语句中向多个变量赋同一个值,即多重赋值。例如,在下面代码中把0同时赋给x、y与z。

x = y = z = 0。

相对于只有一个等号的赋值操作符,关系操作符中的等于操作符采用两个等号“==”来表示。正因如此,导致了一个潜在的问题:出于习惯,我们可能经常将需要等于操作符的地方写成赋值操作符,如下面的代码:

int x=10;int y=1;if(x=y){/*处理代码*/}。

在上面的代码中,if语句看起来好像是要检查变量x是否等于变量y。实际上并非如此,此时if语句将变量y的值赋给变量x并检查结果是否为非零。因此,虽然这里的x不等于y,但是y的值为1,if语句还是会返回真。

当然,当确实需要先对一个变量进行赋值之后再检查变量是否非零时,可以考虑显式给出比较符。示例代码如下:

int x=10;int y=1;if((x=y) != 0){/*处理代码*/}。

这样,程序的可读性就得到了很大提高。

上面的示例代码详细地阐述了将等于操作符“==”误写成赋值操作符“=”所带来的严重后果。同理,将赋值操作符“=”误写成等于操作符“==”也会带来非常严重的后果。示例代码如下:

int x=0;int y=-1;if((x==y)<0){printf("y<0\n");}。

在上面的代码中,if语句的本意是将变量y的值赋给变量x,然后再判断变量x的值是否小于0。如果变量x的值小于0,就执行语句printf("y<0\n")。由于错误地将赋值操作符“=”误写成等于操作符“==”,所以无论变量y为何值,都不会执行语句printf("y<0\n")。原因是等于操作符“==”的结果只能是0或1,永远不会小于0。

除此之外,为了防止将等于操作符“==”误写成赋值操作符“=”,还可以在代码中采用如下形式:

int x=0;if(0==x){}。