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

如题所述

可以的,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个回答  推荐于2017-11-25
可以的,C语言中赋值表达式的返回值会向左传递。也就是说a=2这个表达式的值为2。这时如果if(2==(a=2))那么if的值为真。也就是说a=b=c=3是合法的。但是a=b+2=9是不行的,因为9的值不能赋给2,它是个常量。把握住这一点,你就能推算出很多东西了。本回答被提问者采纳
第2个回答  2013-01-27
不可以。
一个 = 是赋值
== 是 判断 两个 参量 是否相等的。追问

我的意思是像a=b=12;这种的。。

追答

这种 是可以的,运算从右往左 把 12赋值给b b的值为12 然后把b的值赋值给a a的值为12

第3个回答  2013-01-27
是说 a=b=1这种的么,可以的连续几个都行,保证类型一致就行。
相似回答