C++11 中的逗号运算符(排序)

2023-12-08

标准中提到f(a,(t=3,t+2),c);根据我的理解,这将是一个赋值表达式,后跟第二个运算符的表达式。

但语法将其并列列出:

表达:

赋值表达式

表达式、赋值表达式

工作草案,编程标准 C语言 ++ 修订版 N4140(2014 年 11 月)

有人好心向我解释一下我在这里缺少什么吗?


当你看到

 expression:
    assignment-expression
    expression, assignment-expression

这意味着有两种表达的可能性。一种可能性是,这只是assignment-expression这是之前在某处定义的。或者递归地表示为expression, assignment-expression

因此,在扩展它之后,您会收到该表达式,它是一个或多个赋值表达式标记的逗号分隔列表。

在示例中,您提到的第二个参数是表达式 (t=3,t+2),它由 2 个逗号分隔的赋值表达式组成 - 因为它出现“在逗号被赋予特殊含义的上下文中”,所以它必须“仅出现在括号中”。

要找出为什么赋值表达式可以采用 t+2 的形式,您必须从它的定义返回并始终选择第一个选择

assignment-expression
-> conditional-expression
--> logical-or-expression
---> logical-and-expression
----> inclusive-or-expression
-----> exclusive-or-expression
------> and-expression
-------> equality-expression
--------> relational-expression
---------> shift-expression
----------> additive-expression - this is what you see
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C++11 中的逗号运算符(排序) 的相关文章

  • 在 C++ 中使用 matlab 结构(matlab 函数调用的返回值)(由 matlab 编译器生成的库)

    你好 我有一个相当简单的 matlab 函数 例如 function MYSTRUCT myfunc MYSTRUCT prop1 test MYSTRUCT prop2 foo MYSTRUCT prop3 42 end 我用 matla
  • 如何将 protobuf-net 与不可变值类型一起使用?

    假设我有一个像这样的不可变值类型 Serializable DataContract public struct MyValueType ISerializable private readonly int x private readon
  • 提交后禁用按钮

    当用户提交付款表单并且发布表单的代码导致 Firefox 中出现重复发布时 我试图禁用按钮 去掉代码就不会出现这个问题 在firefox以外的任何浏览器中也不会出现这个问题 知道如何防止双重帖子吗 System Text StringBui
  • 复制 std::function 的成本有多高?

    While std function是可移动的 但在某些情况下不可能或不方便 复制它会受到重大处罚吗 它是否可能取决于捕获变量的大小 如果它是使用 lambda 表达式创建的 它依赖于实现吗 std function通常被实现为值语义 小缓
  • 使用 Newtonsoft 和 C# 反序列化嵌套 JSON

    我正在尝试解析来自 Rest API 的 Json 响应 我可以获得很好的响应并创建了一些类模型 我正在使用 Newtonsoft 的 Json Net 我的响应中不断收到空值 并且不确定我的模型设置是否正确或缺少某些内容 例如 我想要获取
  • 如何区分用户点击链接和页面自动重定向?

    拥有 C WebBrowser control http msdn microsoft com en us library system windows forms webbrowser aspx在我的 WinForms 应用程序中 并意识
  • 为什么 Google 测试会出现段错误?

    我是 Google Test 的新手 正在尝试提供的示例 我的问题是 当我引入失败并设置GTEST BREAK ON FAILURE 1 或使用命令行选项 GTest 将出现段错误 我正在考虑这个例子 https code google c
  • 使用接口有什么好处?

    使用接口有什么用 我听说它用来代替多重继承 并且还可以用它来完成数据隐藏 还有其他优点吗 哪些地方使用了接口 程序员如何识别需要该接口 有什么区别explicit interface implementation and implicit
  • C#:帮助理解 UML 类图中的 <>

    我目前正在做一个项目 我们必须从 UML 图编写代码 我了解 UML 类图的剖析 但我无法理解什么 lt
  • C# 中的合并运算符?

    我想我记得看到过类似的东西 三元运算符 http msdn microsoft com en us library ty67wk28 28VS 80 29 aspx在 C 中 它只有两部分 如果变量值不为空 则返回变量值 如果为空 则返回默
  • CMake 无法确定目标的链接器语言

    首先 我查看了this https stackoverflow com questions 11801186 cmake unable to determine linker language with c发帖并找不到解决我的问题的方法 我
  • 动态添加 ASP.Net 控件

    我有一个存储过程 它根据数据库中存储的记录数返回多行 现在我想有一种方法来创建 div 带有包含该行值的控件的标记 如果从数据库返回 10 行 则 10 div 必须创建标签 我有下面的代码来从数据库中获取结果 但我不知道如何从这里继续 S
  • 将 MQTTNet 服务器与 MQTT.js 客户端结合使用

    我已经启动了一个 MQTT 服务器 就像this https github com chkr1011 MQTTnet tree master例子 该代码托管在 ASP Net Core 2 0 应用程序中 但我尝试过控制台应用程序 但没有成
  • 使用 C# 读取 Soap 消息

  • 按 Esc 按键关闭 Ajax Modal 弹出窗口

    我已经使用 Ajax 显示了一个面板弹出窗口 我要做的是当用户按 Esc 键时关闭该窗口 这可能吗 如果有人知道这一点或以前做过这一点 请帮助我 Thanks 通过以下链接 您可以通过按退出按钮轻松关闭窗口 http www codepro
  • 调用堆栈中的“外部代码”是什么意思?

    我在 Visual Studio 中调用一个方法 并尝试通过检查调用堆栈来调试它 其中一些行标记为 外部代码 这到底是什么意思 方法来自 dll已被处决 外部代码 意味着该dll没有可用的调试信息 你能做的就是在Call Stack窗口中单
  • 方法优化 - C#

    我开发了一种方法 允许我通过参数传入表 字符串 列数组 字符串 和值数组 对象 然后使用这些参数创建参数化查询 虽然它工作得很好 但代码的长度以及多个 for 循环散发出一种代码味道 特别是我觉得我用来在列和值之间插入逗号的方法可以用不同的
  • System.IO.FileNotFoundException:找不到网络路径。在 Windows 7 上使用 DirectoryEntry 对象时出现异常

    我正在尝试使用 DirectoryEntry 对象连接到远程 Windows 7 计算机 这是我的代码 DirectoryEntry obDirEntry new DirectoryEntry WinNT hostName hostName
  • 无法接收 UDP Windows RT

    我正在为 Windows 8 RT 编写一个 Windows Store Metro Modern RT 应用程序 需要在端口 49030 上接收 UDP 数据包 但我似乎无法接收任何数据包 我已按照使用教程进行操作DatagramSock
  • 我的班级应该订阅自己的公共活动吗?

    我正在使用 C 3 0 遵循标准事件模式我有 public event EventHandler

随机推荐

  • 如何在列表列表中搜索项目?

    我怎么能做这样的事情呢 index test1 test2 test3 test4 test5 test6 test7 test8 test9 if test5 is in index print True Using any 生成器表达式
  • 继承依赖注入

    我想创建一个通用的 api 服务 以便更容易创建模型相关的服务 export abstract class ModelService
  • 在 Windows 上安装 Imagick for PHP 和 Apache

    到目前为止我已采取的步骤 我已经在我的Win7机器上安装了Imagick 并且它通过命令行安装并正常运行 我已经提取了 php imagick 3 1 2 5 6 ts vc11 x86 zip 的内容here进入我的 PHP ext 目录
  • 路由事件和依赖属性 .NET 包装器混淆

    我是 WPF 新手 对路由事件和依赖属性的包装语法感到困惑 我在许多来源上看到路由事件和依赖属性是这样包装的 Routed Event public event RoutedEventHandler Click add base AddHa
  • ElasticSearch 的 MasterService 计算集群状态花费的时间太长并抛出 ProcessClusterEventTimeoutException

    我们有一个每秒向 ES 集群添加数千个文档的应用程序 每次我们滚动正在写入的索引并开始写入新索引时 我们都会收到以下错误 这些错误不允许在大约 1 分钟内摄取文档 1 分钟后 一切都会恢复正常 直到我们再次滚动索引 WARN o e c s
  • 如何在流式查询中执行动态SQL?

    我正在使用 Spark 结构化流 并处理来自 Kafka 的消息 在某一时刻 我的结果表如下所示 其中数据集中的每一行都有一个 Spark SQL 查询 code triggerSql US SELECT FROM def UK SELEC
  • 如何/声明 google-play-services-component 时出错

    我正在使用 eclipse Java ADT 包 我正在尝试让 google 地图 api 正常工作 文档中引用的启动和运行 google 地图的方法是 设置 Google Play SDK gt 引用 eclipse 的库项目 http
  • 失败:元数据错误:java.lang.RuntimeException:无法实例化 org.apache.hadoop.hive.metastore.HiveMetaStoreClient

    当 HDFS 和 hive 实例运行时 我关闭了 HDFS 客户端 现在 当我重新登录 Hive 时 我无法执行任何 DDL 任务 例如 显示表 或 描述表名 等 它给了我如下错误 ERROR exec Task SessionState
  • 如何查询嵌套对象?

    我在使用嵌套对象表示法查询 mongoDB 时遇到问题 db messages find headers From email protected count 0 db messages find headers From email pr
  • 如何在 XMPP iOS 中获取消息已发送、已看到、失败和未读消息计数? (斯威夫特3.0)

    我正在开发聊天应用程序 因为我陷入了两种情况 1 如何获取消息状态 如已发送 已查看等 我做了以下事情 self xmppMessageDeliveryRecipts XMPPMessageDeliveryReceipts dispatch
  • 为什么这里会发生CMS(并发模式失败)?

    Operation System Red Hat Linux 4 8 CPU Info Intel R Xeon R CPU 5160 3 00GHz X 16 JDK version 1 5 0 16 JVM Parameter serv
  • Jquery 日期选择器 Chrome

    在使用 jQuery UI Datepicker 时 我们在 Google Chrome 中使用时遇到一个问题 当我们输入大于 12 的日期时 它不接受它作为有效日期 这是因为 chrome 认为日期格式是 mm dd yyyy 我们尝试通
  • 指针 - 减少内存消耗

    我一直在为 OpenGL 练习编写 Minecraft 复制品 我猜有很多 但是在编写了基本渲染 API 后 我注意到真正的 Minecraft 使用了lot或内存 大约 800MB 我完全理解为什么它必须记住所有块以及小怪以及生成器的地形
  • AS3 中的安全沙箱

    什么是安全沙箱违规 如何覆盖它 我正在 FlashDevelop 中制作一个项目 今天 它不会加载外部文件 即使以前加载过 它给出以下输出 安全沙箱违规 连接到 文件 C Documents 20and 20Settings Kevin P
  • 从浏览器控制台删除错误消息 (Angular HttpClient)

    HttpClient 有没有办法从浏览器控制台中删除错误消息 我当前的代码如下所示 getStuff stuffId string Observable
  • 如何从 UIPickerview 中删除选择行

    嗨我正在使用picker view 默认情况下选择第一行 我不想要这个选项 例如 我有 否 和 是 选项 如果我在pickerview中给出此选项 否 将在pickerview中被选择 附上屏幕截图 我不需要这个 我需要第一行为空 一旦用户
  • 如何从 Postman Rest 客户端发送 spring csrf 令牌?

    I have CSRF保护在Spring框架中 因此 在每个请求中 我从 ajax 调用的标头中发送 csrf 令牌 这是完美的工作 var token meta name csrf attr content var header meta
  • Android初学者padding和margin的区别[重复]

    这个问题在这里已经有答案了 我已经提出了有关SO的问题 还检查了一个答案 填充是边框内部 边框与实际视图内容之间的空间 请注意 填充完全围绕内容 顶部 底部 右侧和左侧都有填充 可以是独立的 边距是边框外部 边框与该视图旁边的其他元素之间的
  • Xcode 中的 Target 到底是什么?

    我一直想知道这些目标是怎么回事 这是什么一回事呢 那有什么意义呢 我从来不需要摆弄它们 但显然我可以 我为什么要这样 我能用它们做什么 他们的目的是什么 每个项目都可以构建多个可执行文件或库 或者调用 makefile 或 shell 脚本
  • C++11 中的逗号运算符(排序)

    标准中提到f a t 3 t 2 c 根据我的理解 这将是一个赋值表达式 后跟第二个运算符的表达式 但语法将其并列列出 表达 赋值表达式 表达式 赋值表达式 工作草案 编程标准 C语言 修订版 N4140 2014 年 11 月 有人好心向