首页 / 知识
关于C#:逗号运算符是什么?
2023-04-14 17:41:00

What does the comma operator , do?表达式:
首先计算表达式1,然后计算表达式2,并为整个表达式返回表达式2的值。 我见过在
它将进行操作,然后根据副作用进行测试。另一种方法是这样做:
。 逗号运算符将计算左操作数,放弃结果,然后计算右操作数,这就是结果。链接中提到的惯用用法是在初始化
否则逗号运算符的用处就不多了,尽管生成难以读取和维护的代码很容易被滥用。 根据C99标准草案,语法如下:
号 第2段说:
号 脚注97说:
号 这意味着您不能为逗号运算符的结果赋值。 需要注意的是,逗号运算符的优先级最低,因此在某些情况下,使用
将具有以下输出:
。 逗号运算符将它两边的两个表达式组合为一个表达式,按从左到右的顺序对它们进行计算。右侧的值作为整个表达式的值返回。 它经常出现在
。 除此之外,我只在另一种情况下"愤怒地"使用它,在总结两个应该始终在宏中一起执行的操作时。我们的代码将各种二进制值复制到一个字节缓冲区中,以便在网络上发送,并且在我们到达的地方维护了一个指针:
如果值是
。 后来我们读到这不是真正有效的c,因为
然而,这种方法依赖于所有开发人员记住始终将这两个语句放在一起。我们需要一个函数,您可以在其中传递输出指针、值和值的类型。这是C,不是C++的模板,我们不能有一个任意类型的函数,所以我们在一个宏上进行了讨论:
。 通过使用逗号运算符,我们可以在表达式中或作为我们希望的语句使用它:
号 我不是说这些例子中的任何一个都是好的风格!事实上,我似乎还记得史蒂夫·麦康奈尔(Steve McConnell)的代码完整建议,即使在 它导致对多个语句进行评估,但只使用最后一个语句作为结果值(我认为是右值)。 所以…
号 应导致x设置为8。 逗号运算符没有任何意义,它是一个100%多余的特性。它的主要用途是"人们试图变得聪明",因此使用它(无意中)混淆可读代码。主要的用途是混淆循环,例如:
其中 但是,如果不使用逗号运算符,上述代码可以以更可读的方式编写:
。 我看到的逗号运算符的唯一真正用途是关于序列点的人工讨论,因为逗号运算符在左操作数和右操作数的计算之间带有序列点。 因此,如果您有一些未定义的行为代码,比如:
。 实际上,您可以通过编写
现在,在对 当然,没有人会在实际的应用程序中编写这样的代码,它只对语言律师讨论C语言中的序列点有用。 逗号运算符被misra-c:2004和misra-c:2012禁止,理由是它创建的代码可读性较低。 正如前面的答案所述,它计算所有语句,但使用最后一个语句作为表达式的值。我个人认为它只在循环表达式中有用:
我唯一看到它有用的地方是编写一个时髦的循环,在这个循环中,您希望在一个表达式(可能是in it表达式或循环表达式)中执行多个操作。比如:
。 如果有语法错误,或者我混合了不严格的C语言,请原谅。我不认为,运算符的格式很好,但这正是您可以使用它的原因。在上面的例子中,我可能会使用一个 我只是想回答@rajesh和@jeffmercado的问题,我认为这是非常重要的,因为这是搜索引擎的热门话题之一。 以下面的代码片段为例
。 它将打印
由于 有趣的是,语言规范不允许使用 希望这有帮助。 |
最新内容
相关内容
linux的数学计算命令?
linux的数学计算命令?,工作,系统,信息,地址,数字,目录,命令,百分比,情况,管理,linux的shell脚本编程,求两数字间所有偶数的和,我是小白,不太懂linux云计算查看命令?
linux云计算查看命令?,系统,信息,地址,工作,命令,情况,标准,服务,软件,网络,linux常用命令1、linux系统常用操作命令如下:ls:全拼list,功能是列出linux打开计算器命令?
linux打开计算器命令?,密码,电脑,工作,设备,数字,系统,手机,指数,情况,服务,关于Linux的(操作过程中的Linux命令必须完整给出)对Linux操作系统linux命令输出计算?
linux命令输出计算?,标准,地址,工作,信息,系统,命令,软件,数据,文件,控制台,linux借用外部命令expr,实现计算器功能,利用管道,进程1、你得装一linux计算总数命令?
linux计算总数命令?,系统,第一,情况,数据,信息,电脑,命令,百分比,单位,工作,linux下如何统计一个目录下的文件个数以及代码总行数的命令1、在Llinux中计算器命令?
linux中计算器命令?,地址,数据,位置,网络,设备,时间,环境,平台,软件,命令,说说常用的UNIX命令?命令:whoami格式:whoami功能:显示出当前终端上使用linux退出计算器命令?
linux退出计算器命令?,工作,地址,系统,命令,通信,信息,电脑,目录,路径,操作,基本linux命令1、linux系统常用操作命令如下:ls:全拼list,功能是列出linux命令正则表达式?
linux命令正则表达式?,工作,环境,基础,网络,单位,名称,平台,信息,正规,管理,Linux正则表达式正则表达式基本上是一种表示法,只要程序支持这种表重启计算机linux命令?
重启计算机linux命令?,系统,设备,工作,标准,名称,命令,状态,数据,服务,提示,Linux的重启命令有哪些linux重启命令有五个,分别如下:shutdown。powlinux计算器打开命令?
linux计算器打开命令?,工作,地址,命令,标准,管理,系统,目录,路径,管道,控制台,基本linux命令1、clear:清空终端屏幕。history:显示已经执行的命linux计算摘要的命令?
linux计算摘要的命令?,数据,网络,数字,密码,工具,名称,正规,标准,代码,文件,linux下怎么生成文件的md5Linux执行shell计算md5值可以通过md5sumlinux命令计算时间差?
linux命令计算时间差?,时间,系统,标准,流程,状态,单位,名称,表达式,命令,时间差,for语句延时时间计算方法1、C语言中的for语句一般的表达形式