首页 > 后端开发 > C++ > 正文

C 和 C 之间条件运算符行为的主要区别是什么?

Mary-Kate Olsen
发布: 2024-11-04 01:56:01
原创
294 人浏览过

  What are the key differences in the conditional operator's behavior between C and C  ?

C 和 C 条件运算符 (?) 之间的差异

条件运算符 (?:) 提供了一种简洁的方法来计算基于以下内容的表达式:状况。然而,它在 C 和 C 之间的功能上表现出细微的差异。

左值赋值:

在 C 中,条件运算符可以返回左值,允许这样的表达式:

(true ? a : b) = 1;
登录后复制

这将根据 true 的真实性将值 1 分配给 a 或 b。在 C 中,这是不允许的,必须使用 if/else 语句或直接使用引用:

*(true ? &a : &b) = 1;
登录后复制

运算符优先级:

在 C 中, ?: 和 = 运算符具有相同的优先级并从右到左分组。这意味着以下内容是有效的:

(true ? a = 1 : b = 2);
登录后复制

但是,在 C 中,如果最后一个表达式没有括号,这将引发错误:

(true ? a = 1 : (b = 2));
登录后复制

因此,当使用条件运算符时在混合 C 和 C 环境中,了解这些细微差别以避免意外行为至关重要。

以上是C 和 C 之间条件运算符行为的主要区别是什么?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!