c语言的赋值语句可以有连续两个等号吗?

Python019

c语言的赋值语句可以有连续两个等号吗?,第1张

可以的,C语言中赋值表达式的返回值会向左传递。也就是说a=2这个表达式的值为2。这时如果if(2==(a=2))那么if的值为真。

也就是说a=b=c=3是合法的。但是a=b+2=9是不行的,因为9的值不能赋给2,它是个常量。

赋值运算符右侧的值由表达式生成,而表达式则由文本、常数、变量、属性、数组元素、其他表达式或函数调用的任意组合所构成。下面的示例阐释这一点。

扩展资料:

赋值语句的形式:

1、a = 3;{赋予变量常数值}

2、b = a + 1;{将含有其它变量的表达式赋予变量}

3、N = N。

赋值语句中的数据类型

1、基本类型;

2、构造类型;

3、指针类型;

4、空类型。

参考资料来源:百度百科-赋值语句

连等关键有两点:

1、运算符的优先级跟结合性。

2、一个赋值表达式是有值的,值就是被赋的值,比如a=3

,这个赋值表达式的值就是3,若有b=(a=3),则b的值为3.

例如:

a=b=c中只有一个运算符,等号,所以优先级是一样的,而等号的结合性是从右向左的(也就是等式从右往左计算),所以a=b=c

等同于

a=(b=c),故a=4,b=4

楼主您好!

这是不符合C语言规范的。

使用if(a==b==c)的结果将是:

1)判断a==b

2)用(a==b)运算的结果(一个布尔值,true或者false)与c进行==运算

希望能解答您的问题。

祝您愉快。