a=b=6可以作为C语言的赋值语句

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了a=b=6可以作为C语言的赋值语句相关的知识,希望对你有一定的参考价值。

可以,c语言规定赋值表达式中的表达式还可以是一个赋值表达式,即在一个表达式中出现多个赋值符,按照“=”运算符自右而左的结合顺序,你的式子就等价与A=(B=6),相当于A=6,整个表达式的值也就等于6.
希望对你有帮助!
参考技术A 可以的,按照从右到左的顺序执行,先将 6赋值给变量 b, 然后再将 b的值赋给变量 a, 执行完成后 a 和 b 的值都是 6.

Scala守卫语句的集中用法

相比于JAVA,Scala的if增加了两项强大的功能,一是可以直接作为赋值语句,另一种功能是作为守卫语句,不仅远远超过JAVA,甚至也将PYTHON抛在身后。

1. if作为赋值语句

作为赋值语句,不仅仅只是替代了三元运算符,而且还能支持逻辑语句块,如下:

val (a, b) = (10, 20)// 更添加更多逻辑控制,且支持语句块val value = if(a > b) 1 else if(a == b) { val c = a - 1 c * c} else 1

2. if作为for守卫语句

if作为for守卫语句能实现过滤的效果,显著地降低循环次数,并且更易读,如下:

// 返回大于5的偶数,类型为Vectorval items = for(i <- 1 to 10 if i % 2 == 0 if i > 5) yield i;

从上面可以看出,if作为for守卫语句具有如下特点:

1. 一个for循环可以支持多个if语句,以空格、回车字符分割
2. 多个if语句之间的关系是逻辑与(&&);

需要注意,if守卫语句并不支持其他循环语句,如while。

3. if作为case守卫语句

继续上面的例子,在作为case守卫语句中,能细化case语句的粒度,更易于控制逻辑流转,如下:

 
   
   
 
var vs = items match { // 判断x的长度 case x if x.size < 1 => null // 判断x的内容 case x if x.contains(8) => 8}

对于“case”语句,虽然没有显式的“break”语句,但是依旧是“满足即阻断”,只会执行最先满足的“case”,所以,设计“case”执行逻辑时,最重要的就是执行逻辑的优先级。

结论

熟练使用if语句,能实现很优雅的短码效果,更能达到Python提倡的“用一条语句(集合)解决一个问题”。

以上是关于a=b=6可以作为C语言的赋值语句的主要内容,如果未能解决你的问题,请参考以下文章

C语言赋值语句执行后返回数值不?

Verilog语言中的赋值问题

在C语言中赋值语句有啥作用?

Verilog 如何用持续赋值语句实现2选1多路选择器

C语言求指点,程序执行判断语句与赋值语句时,哪个耗时更长? 比如:if(a>b) a=b; 是if

C语言:赋值语句