使用赋值作为条件表达式?

2023-12-08

考虑:

if (a=5) {
   /* do something */
}

任务作为条件如何发挥作用?

它是基于左值的非零值吗?


C++ — ISO/IEC 14882:2003(E)

[5.17/1]有几个赋值运算符,它们都组 右到左。全部都需要一个可修改的左值作为其左操作数, 赋值表达式的类型是其左操作数的类型。赋值运算的结果就是左边存储的值 赋值后的操作数;结果是一个左值。

表达式的结果a = 5 is 5.

[6.4/4][..] a 的值状况这是一个表达式,其值是 表达,隐式转换为bool对于除以下以外的陈述switch. [..]

转换为bool发生。

[4.12/1]算术、枚举、指针或指向成员的指针的右值 type 可以转换为 type 的右值bool。零值,null 指针值,或空成员指针值转换为false; 任何 其他值转换为true.

5转换为布尔值true.

[6.4.1/1] 如果条件 (6.4) 为真,则第一个 子语句被执行。 [..]

true被视为if声明成功。


C — ISO/IEC 9899:1999(E)

[6.5.16/3]赋值运算符将值存储在对象中 由左操作数指定。赋值表达式的值为 赋值后的左操作数,但不是左值。 [..]

表达式的结果a = 5 is 5.

[6.8.4.1/2]在这两种形式中,如果满足以下条件,则执行第一个子语句 表达式比较不等于0. [..]

5被视为if声明成功。


General

像这样的代码几乎总是一个错误;作者可能有意if (a == 5) {}。然而,有时它是故意的。你可能会看到这样的代码:

if (x = foo()) {
   cout << "I set x to the result of foo(), which is truthy";
   // ... stuff
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用赋值作为条件表达式? 的相关文章

  • VLC 媒体播放器有 C# 界面吗? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 是否可以使用 C 控制台应用程序中的包装器从 VLC 播放中当前播放的文件中读取曲目统计信息 时间 标
  • C# 静态类型不能用作参数

    public static void SendEmail String from String To String Subject String HTML String AttachmentPath null String Attachme
  • 是否可以使用 http url 作为 DirectShow .Net 中源过滤器的源位置?

    我正在使用 DirectShow Net 库创建一个过滤器图 该过滤器图通过使用 http 地址和 WM Asf Writer 来流式传输视频 然后 在网页上 我可以使用对象元素在 Windows Media Player 对象中呈现视频源
  • C#.Net 邮件将进入垃圾邮件文件夹

    我正在从 ASP net Web 应用程序发送电子邮件 邮件发送成功 没有失败 但大多数都进入了垃圾邮件文件夹 请帮助我克服垃圾邮件过滤器 我的发送邮件代码 public void SendMail string FromAddress s
  • 关于逻辑/算法的想法以及如何防止线程写入 Sql Server 中的竞争

    我有以下逻辑 public void InQueueTable DataTable Table int incomingRows Table Rows Count if incomingRows gt RowsThreshold async
  • C# 中的 Stack<> 实现

    我最近一直在实现递归目录搜索实现 并且使用堆栈来跟踪路径元素 当我使用 string Join 连接路径元素时 我发现它们被颠倒了 当我调试该方法时 我查看了堆栈 发现堆栈内部数组中的元素本身是相反的 即最近 Push 的元素位于内部数组的
  • 在 C 语言中,为什么数组的地址等于它的值?

    在下面的代码中 指针值和指针地址与预期不同 但数组值和地址则不然 怎么会这样 Output my array 0022FF00 my array 0022FF00 pointer to array 0022FF00 pointer to a
  • 在 C++ 代码中转换字符串

    我正在学习 C 并开发一个项目来练习 但现在我想在代码中转换一个变量 字符串 就像这样 用户有一个包含 C 代码的文件 但我希望我的程序读取该文件并插入将其写入代码中 如下所示 include
  • 在 Mono 中反序列化 JSON 数据

    使用 Monodroid 时 是否有一种简单的方法可以将简单的 JSON 字符串反序列化为 NET 对象 System Json 只提供序列化 不提供反序列化 我尝试过的各种第三方库都会导致 Mono Monodroid 出现问题 谢谢 f
  • C# 中一次性对象克隆会导致内存泄漏吗?

    检查这个代码 class someclass IDisposable private Bitmap imageObject public void ImageCrop int X int Y int W int H imageObject
  • 2个对象,完全相同(除了命名空间)c#

    我正在使用第三方的一组网络服务 但遇到了一个小障碍 在我手动创建将每个属性从源复制到目标的方法之前 我想我应该在这里寻求更好的解决方案 我有 2 个对象 一个是 Customer CustomerParty 类型 另一个是 Appointm
  • if constexpr 中的 not-constexpr 变量 – clang 与 GCC

    struct A constexpr operator bool const return true int main auto f auto v if constexpr v A a f a clang 6 接受该代码 GCC 8 拒绝它
  • Linux 上的 RTLD_LOCAL 和dynamic_cast

    我们有一个由应用程序中的一些共享库构成的插件 我们需要在应用程序运行时更新它 出于性能原因 我们在卸载旧插件之前加载并开始使用新插件 并且只有当所有线程都使用旧插件完成后 我们才卸载它 由于新插件和旧插件的库具有相同的符号 我们dlopen
  • C# 获取数据表中所有重复行的计数

    我通过运行存储过程来填充数据集 并且从数据集中填充数据表 DataSet RawDataSet DataAccessHelper RunProcedure storedprocedureName this will just return
  • wordexp 失败时我们需要调用 wordfree 吗?

    wordexp 失败时我们需要调用 wordfree 吗 在某些情况下 调用 wordfree 似乎会出现段错误 例如 当 wordfree 返回字符串为 foo bar 的错误代码时 这在手册页中并不清楚 我已经看到在某些错误情况下使用了
  • ASP.NET Core 中间件与过滤器

    在阅读了 ASP NET Core 中间件之后 我对何时应该使用过滤器以及何时应该使用中间件感到困惑 因为它们似乎实现了相同的目标 什么时候应该使用中间件而不是过滤器 9频道有一个关于此的视频 ASP NET 怪物 91 中间件与过滤器 h
  • C++ 指针引用混淆

    struct leaf int data leaf l leaf r struct leaf p void tree findparent int n int found leaf parent 这是 BST 的一段代码 我想问一下 为什么
  • 如何高效计算连续数的数字积?

    我正在尝试计算数字序列中每个数字的数字乘积 例如 21 22 23 98 99 将会 2 4 6 72 81 为了降低复杂性 我只会考虑 连续的数字 http simple wikipedia org wiki Consecutive in
  • 任何人都可以清楚地告诉如何在不使用像 这样的预定义函数的情况下找到带有小数值或小数值的指数吗? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 例如 2 0 5 1 414 所以想要 我是 c 的新手 所以请解释简单的逻辑 如果不是复杂的逻辑也足够了 在数学中 从整数取幂到实数
  • 从后面的代码添加外部 css 文件

    我有一个 CSS 文件 例如 SomeStyle css 我是否可以将此样式表文档从其代码隐藏应用到 aspx 页面 您可以将文字控件添加到标头控件中 Page Header Controls Add new System Web UI L

随机推荐

  • 带有子解析器和可选位置参数的 Python argparse

    我想要一个带有子解析器的程序 它可以处理特定的参数 同时还为之前的解析器保留一些位置和可选参数 事实上 我真正想要的只是一个选项 我的意思是 一个有效的子解析器或一个有效的本地参数 我希望拥有的东西的例子 Program sectionNa
  • wmic 命令的批处理脚本中的文本乱码

    我正在尝试运行批处理脚本来获取基本的计算机信息 如 CPU RAM 和活动网卡 这是我的代码 Echo OFF set newline echo echo Manufacturer Information gt test1 txt syst
  • 如何使用 cPanel 托管 Django 网站?

    我是网站托管领域的新手 尤其是 cPanel 平台 我有一个使用Python语言开发的网站 它也使用Django 我在 cPanel 中托管了这个网站 但它似乎不起作用 当我浏览我的网站域 www def com 时 现在它显示 site
  • 如何在Java中实现无穷大?

    Java 是否有任何东西可以代表每种数值数据类型的无穷大 它是如何实现的 以便我可以用它进行数学运算 E g int myInf infinity However it is done myInf 5 returns infinity my
  • PHP 表单提交时自动跳转到 HTML 锚点

    我正在尝试将表单添加到我的索引页面中 以便当您单击 提交 时 页面重新加载时它将自动返回到表单 现在 如果页面上有任何错误 它会在表单上方显示它们 并给出一些感谢信息 我目前的index html 页面有以下内容
  • BizTalk Schema 开发 - 十六进制值 0x19,是无效字符

    我有一个架构元素节点 如下所示
  • 如何使用 PLSQLDeveloper 窗口打印 SYS_REFCURSOR?

    在下面的查询中如何在 PL SQL SQL Window 中获取 IO CURSOR 值 DECLARE SOME VAR 1 VARCHAR2 20 SOME VAR 2 VARCHAR2 20 SOME VAR 3 DECIMAL IO
  • 在函数式编程中,什么是函子?

    我在阅读有关函数式编程的各种文章时多次遇到 函子 一词 但作者通常假设读者已经理解该术语 在网络上环顾四周 要么提供了过多的技术描述 请参阅维基百科文章 或令人难以置信的模糊描述 请参阅此处有关函子的部分ocaml 教程网站 有人可以定义这
  • 如何从sql bigquery中的字符串字典列表中获取值?

    您好 我有一个包含以下数据的 sql 表 Outbound click action type outbound click value 1025 我如何获得正确的值 因为这是 bigquery sql 中的字符串 我想要的输出是 Outb
  • 如何在 Google Container Engine 上使用 Kubernetes 服务公开动态端口?

    我正在尝试通过 TCP 协议通过互联网从本地计算机连接到 Google Container Engine GKE 上的 Docker 容器 到目前为止 我已经使用了 Kubernetes 服务 它提供了外部 IP 地址 因此本地计算机可以使
  • C#:文件复制通知[关闭]

    Closed 这个问题需要细节或清晰度 目前不接受答案 您好 我正在创建一个 C 应用程序来监视已复制的文件 该程序的目的是提醒用户有一个文件已被复制 我知道文件系统观察程序类 但它只有 4 个事件 更改或创建或删除或重命名 有没有办法知道
  • 如何访问过程之外的变量

    我正在尝试围绕 Tcl 变量作用域进行思考 但我坚持认为是一个简单的概念 如何访问我在过程之外定义的变量 但我没有明确地定义该变量传递给进程 我试图避免设置一堆全局变量 并且只访问我在特定命名空间中定义的变量 我需要在下面的代码中添加什么以
  • 使用 ItemsSource 将预定义项目添加到 ComboBox

    我正在尝试将预定义的 ComboBoxItem 添加到已设置 ItemsSource 属性的 ComboBox 中 例子 Select item Item 1 Item 2 Item 3 可以在不修改原始项目集合的情况下执行此操作吗 以下是
  • 如何在 Firestore 上以有限权限使用 Admin SDK?

    我在云功能和 Firestore 规则方面遇到一些问题 我想在 Firestore 上使用具有有限权限的云功能并给予 仅具有安全规则中定义的访问权限 它在 RTDB 上运行没有问题 但在 Firestore 上运行不正常 我尝试过这个规则
  • 各种编译器编译的链接库

    我想更详细地询问我最近在这里得到的答案 第三个 编译语言基础知识 如果我用 C 和 MinGW 编写并链接到 VC 编译的 C 库 它会工作吗 我如何提前知道 换句话说 如果我能够在没有警告的情况下创建链接到该 C dll 的 exe 并且
  • 如何捕获对话框外触摸时的事件?

    我的应用程序有一个对话框 我想在用户单击对话框外部时捕获事件 为此我需要做什么 谢谢大家 Dialog有setCanceledOnTouchOutside boolean 方法 如果您传递 true 作为参数 当您触摸窗口边界之外时 对话框
  • jquery datepicker + 日期差异计算

    这是我的代码 function arr date datepicker dateFormat dd mm yy dep date datepicker dateFormat dd mm yy function var start arr d
  • 如何编写 Firebase 规则以允许仅读取集合/文档的一部分? [复制]

    这个问题在这里已经有答案了 我正在使用 firebase firestore 开发一个网站 该网站向基于角色的用户显示文章 所以数据库保存了文章的集合 qlt0mPbTBt1rQcrx1HJR title Article 1 descrip
  • jQuery.parseJSON \u0092 字符未解析

    我有一个从 php 编码的文本 带有 ajax 函数和 de php utf8 encode 如果我直接在控制台中打印它 文本将显示如下 projects id 1 title CURSOS DE PERIODISME descriptio
  • 使用赋值作为条件表达式?

    考虑 if a 5 do something 任务作为条件如何发挥作用 它是基于左值的非零值吗 C ISO IEC 14882 2003 E 5 17 1 有几个赋值运算符 它们都组 右到左 全部都需要一个可修改的左值作为其左操作数 赋值表