首页 > 编程知识 正文

c语言逗号运算符怎么用,c语言逗号运算符作用

时间:2023-05-06 19:32:14 阅读:251074 作者:3937

逗号也是运算符?

是的,但是其实我更愿意说它是分隔符。在C语言中我们就经常使用逗号,看似逗号是非常平凡的分隔符,但是它关联到一个你必须知道但可能未曾思考的小知识:
理论上,每条语句(分号结束),最终都会转换成一个值。

例子1:

#include <stdio.h>int main(){3, 4, 5;//这是一条语句//把上面这条语句的值赋值给变量aint a = (3, 4, 5);printf("a=%dn", a);}输出结果:a=5因为a的值是整条语句的值,而整条语句的值是最后那个逗号后面的值

例子2:

#include <stdio.h>int main(){int a=3, b=4, c=5;int x=0;int y=(x=a+b),(b+c);printf("第一个y=%dn", y);y=((x=a+b),(b+c));printf("第二个y=%dn", y);}输出结果:第一个y=7第一个y=9第一个y的值你应该能看懂,就是逗号分隔开,使得y=x=a+b第二个y其实就等于逗号后面的(b+c)的值!逗号前面那些似乎是多余的那多余的东西为什么要写呢?请注意:逗号前面有个x的赋值语句,所以并不多余!这样写的目的有2:1.简化代码:两句合成一句写.2.让你理解一个句子就会像一个函数一样有返回值,如果用逗号隔开,这个【返回值】就会变成最后那个表达式的值! 思考:逗号运算符让你明白什么道理?

道理:一条语句理论上是有返回值的,如果语句里面有多个逗号,则以最后一个逗号后面的表达式值为返回值!

//返回值是6,就像函数一样忽略返回值的写法:1,2,3,4,5,6;但是请注意区分,如上面的y=(x=a+b),(b+c);和y=((x=a+b),(b+c));仔细观察,你会发现:前面是【忽略句子返回字】的,后面是【用变量y存放返回值】的

*****************************************************************************************

*****************************************************************************************

时间充裕可以听我啰嗦: 后记:

使用过 kotlin 语言开发安卓(或其他)的小伙伴都知道,Kotlin语言的if语句是有返回值的,返回值就是 if 或该 if 对应的 else 里面的最后一条语句作为返回值。
但是请注意:Kotlin是可以省略分号的,所以你基本不能使用分号作为一个句子的结束,但是可以用关键词,行等间接判断一个句子的开始和结束!
下面给出if-else语句的一种写法:

fun myFun(a:Int,b:Int)=if(a>b) a else b众所周知,Kotlin具有超强的类型匹配能力,所以其中隐含几个信息,(这几个信息是你必须熟知类型匹配机制以后才容易理解的):1.函数的返回值类型是Int,因为if-else的返回值是Int2.函数的返回值是if-else的返回值

上面这行语句等价于:

fun myFun(a:Int,b:Int):Int{return if(a>b){ a }else { b }}

上面这行语句等价于:

fun myFun(a:Int,b:Int):Int{if(a>b){ return a }else { return b }}
见缝插针游戏的实现途径

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。