逗号表达式必须有括号吗(c语言逗号表达式 是不是所有的逗号表达式在做赋值时都得加括号 不然就认为是赋值为第一个表达式的值)

:暂无数据 2026-08-20 12:40:01 :1

逗号表达式必须有括号吗(c语言逗号表达式 是不是所有的逗号表达式在做赋值时都得加括号 不然就认为是赋值为第一个表达式的值)

今天给各位分享c语言逗号表达式 是不是所有的逗号表达式在做赋值时都得加括号 不然就认为是赋值为第一个表达式的值的知识,其中也会对c语言逗号表达式 是不是所有的逗号表达式在做赋值时都得加括号 不然就认为是赋值为第一个表达式的值进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录

c语言逗号表达式 是不是所有的逗号表达式在做赋值时都得加括号 不然就认为是赋值为第一个表达式的值

逗号是依次向后运算
y=4,5; //把4赋值给y,逗号依次运算,到了5,但没有等号进行赋值,所以y=4;
y=(4,5); //括号内的都是赋值给y的值,先把4赋值给y,然后逗号依次运算,把5赋值给y,所以y=5.

C语言逗号表达式的问题 x=6,y=7,z=8 r=func((x--,y--,x+y),z--)

首先说明原理: 

1)逗号运算符也称顺序求值运算符,即从左至右顺序执行,最后一个值会覆盖前面的值,所以使用逗号将几个表达式连接起来的带括号的表达式,最终整个逗号表达式的值为最后一个表达式的值。

2)自增和自减运算符有前置和后置之分,在混合运算中,前置是先自增或者自减,再进行取值;而后置恰好相反,即先取值进行运算,然后再自增或者自减。

在r=func((x--,y--,x+y),z--)这个函数调用中,第一个参数使用了原理1)和2),第二个参数使用了原理2)。

       首先对于第一个参数(x--,y--,x+y),这是一个逗号运算符,从左至右运算:x--(先取x的值,然后x自减,其值变为x=5),同理(先取y的值,然后y自减,其值变为y=6),但由于这是一个逗号运算符,因此x+y的值为x+y=5+6=11,最终r=func((x--,y--,x+y),z--)=func(11,z--);

       其次,z--同理,先取值z=8进行传参数,进行函数调用r=func((x--,y--,x+y),z--),然后z才执行自减(从而z=7)

       补充:如果x--,y--换成r=func((--x,--y,x+y),z--)结果也是一样的,这是因为逗号运算符是从左至右进行运算的,先算完第一个逗号之前的表达式,在计算第二个逗号之前的表达式,依此类推,故,无论是前置还是后置,x的值都是在计算第二个逗号之前已经改变;但是逗号运算符中最后一个逗号除外(即前置才起作用,后置对逗号表达式的结果没影响)。。。

       书写不易,人艰不拆,不喜勿喷,谢谢点赞!!!

c语言,逗号表达式要带括号吗为什么书上的逗号表达式都带括号

括号内加逗号的表达式属于逗号表达式,逗号表达式的规则是从左往右依次执行语句,并返回最后一个语句的结果,如果计算到最后最后一个表达式的值为真,则整个逗号表达式为真,否则为假。

求编程大侠解答!一个C语言逗号表达式和括号的问题

逗号很好办,逗号就是单纯分隔两个式子,括号的主要作用是将括号内的运算式子作为一个整体,也有优先运算的含义(这个含义和数学上是一样的)
对于你的这段程序,首先说b,原式是(b=4*5,
b*2),
b+6
首先计算b=4*5,此时b=20,然后算逗号后的式子就是b*2,注意这里没有说把结果赋值给b,所以b还是等于20,最后的b+6同理,只是计算了一个式子,并没有保存结果,所以b最后的输出为20;
再说a,输出的式子是一个括号,这是一个整体,式子里面首先计算a=3*5,所以a=15,然后计算a*4,同样没有被保存,a还是15,最后计算a+5,这个时候还是没有赋值,所以a=15。但是由于在同一个括号里有2个逗号分开了3个式子,所以括号这个整体的值由最后一个式子决定,最后一个式子的值是a+5,也就是15+5,所以括号这个整体的值是20,输入为20。

关于逗号表达式必须有括号吗,c语言逗号表达式 是不是所有的逗号表达式在做赋值时都得加括号 不然就认为是赋值为第一个表达式的值的介绍到此结束,希望对大家有所帮助。

逗号表达式必须有括号吗(c语言逗号表达式 是不是所有的逗号表达式在做赋值时都得加括号 不然就认为是赋值为第一个表达式的值)

本文编辑:admin

更多文章:


免费翻译器英文翻中文(中文翻译英文的软件免费)

免费翻译器英文翻中文(中文翻译英文的软件免费)

这篇文章给大家聊聊关于免费翻译器英文翻中文,以及中文翻译英文的软件免费对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。

2026年10月11日 11:40

全民体育欧冠直播(电竞发展成为全民体育活动,合适吗)

全民体育欧冠直播(电竞发展成为全民体育活动,合适吗)

各位老铁们好,相信很多人对全民体育欧冠直播都不是特别的了解,因此呢,今天就来为大家分享下关于全民体育欧冠直播以及电竞发展成为全民体育活动,合适吗的问题知识,还望可以帮助大家,解决大家的一些困惑,下面一起来看看吧!

2026年10月11日 11:10

withdrawal(withdrawal是什么意思)

withdrawal(withdrawal是什么意思)

今天给各位分享withdrawal是什么意思的知识,其中也会对withdrawal是什么意思进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

2026年10月11日 07:00

根据流程图怎么编写程序(用c语言根据流程图写程序)

根据流程图怎么编写程序(用c语言根据流程图写程序)

大家好,今天小编来为大家解答以下的问题,关于根据流程图怎么编写程序,用c语言根据流程图写程序这个很多人还不知道,现在让我们一起来看看吧!

2026年10月11日 06:00

在from子句中可以出现(如何在from 子句中嵌套查询下面的语句在access中出错!)

在from子句中可以出现(如何在from 子句中嵌套查询下面的语句在access中出错!)

大家好,关于在from子句中可以出现很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于如何在from 子句中嵌套查询下面的语句在access中出错!的知识点,相信应该可以解决大家的一些困惑和问题,如果碰巧可以解决您的问题,还望

2026年10月11日 05:20

countif函数统计个数怎么用(countif函数怎么用 详解Excel中countif函数的使用方法)

countif函数统计个数怎么用(countif函数怎么用 详解Excel中countif函数的使用方法)

其实countif函数统计个数怎么用的问题并不复杂,但是又很多的朋友都不太了解countif函数怎么用 详解Excel中countif函数的使用方法,因此呢,今天小编就来为大家分享countif函数统计个数怎么用的一些知识,希望可以帮助到大

2026年10月11日 03:30

正则匹配数字之前的字符(正则表达式如何匹配前面是数字、中间是“/”、后面也是数字,就像2/3专业的模式)

正则匹配数字之前的字符(正则表达式如何匹配前面是数字、中间是“/”、后面也是数字,就像2/3专业的模式)

本篇文章给大家谈谈正则匹配数字之前的字符,以及正则表达式如何匹配前面是数字、中间是“/”、后面也是数字,就像2/3专业的模式对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问

2026年10月11日 03:00

register语言学(register语言学)

register语言学(register语言学)

“register语言学”相关信息最新大全有哪些,这是大家都非常关心的,接下来就一起看看register语言学(register语言学)!

2026年10月11日 01:40

系统架构设计师可以直接考吗(学生可以报名系统架构设计师吗)

系统架构设计师可以直接考吗(学生可以报名系统架构设计师吗)

“系统架构设计师可以直接考吗”相关信息最新大全有哪些,这是大家都非常关心的,接下来就一起看看系统架构设计师可以直接考吗(学生可以报名系统架构设计师吗)!

2026年10月11日 01:00

orlnsertbootmediinselected(我电脑开机显示这个是什么意思or insert boot media in select)

orlnsertbootmediinselected(我电脑开机显示这个是什么意思or insert boot media in select)

大家好,如果您还对orlnsertbootmediinselected不太了解,没有关系,今天就由本站为大家分享orlnsertbootmediinselected的知识,包括我电脑开机显示这个是什么意思or insert boot med

2026年10月10日 23:00

最近更新

css滚动条设置(css滚动条怎么设置)
2026-10-11 12:00:05 浏览:0
qq皮肤图片大全唯美(qq皮肤图片)
2026-10-11 11:30:22 浏览:0
热门文章

标签列表