这个奇怪的条件运算符语法是什么
What is this strange conditional operator syntax?
我最近在代码库中看到了以下内容:
bool bRes = (a < b) ? a=b, true : false;
如果a < b
,则执行a=b
,并且bRes
为真。这里到底发生了什么?条件运算符的文档没有提到任何关于链接表达式的内容。
edit:要明确的是,我得到了条件运算符部分,a=b, true
作为一个单独的表达式让我感到困惑。
Ew。这是逗号运算符的用法。a=b, true
完全按照你说的去做。它执行每个表达式并产生最后一个表达式的值。
这是一个正确的代码,但写的风格很奇怪。该语言允许以这种方式使用逗号运算符。
相当于
bool bRes;
if (a < b)
{
a = b;
bRes = true;
}
else
bRes = false;
相关文章:
- 我可以使用条件运算符初始化C风格的字符串文字吗
- C++中的条件运算符 ( ? : ) 可以编译时吗?
- 如何在三元条件运算符中添加换行符和连接? :在 C++ 中
- 无效删除运算符语法
- 这个typedef和转换运算符语法是什么意思
- C++等效于 C# 的 "?." 空条件运算符
- C++ lambda 和运算符语法
- C++具有 void 操作数的条件运算符
- boost::asio::async_read_until 具有自定义匹配条件运算符重载混淆
- C++中的三元条件运算符问题
- 在条件运算符中使用对象两次会产生 UB 吗?
- 条件运算符不允许程序终止
- 在返回语句中嵌套条件运算符
- 为什么这个条件运算符的计算结果为 int?
- 为什么C++不允许在条件运算符中进行隐式列表初始化?
- 是否可以使用条件运算符将输入流传递给函数?
- 使用条件运算符递归计算模板化值或函数时出现错误 C1202(堆栈溢出)
- 具有相同基础类类型的条件运算符
- 这个奇怪的条件运算符语法是什么
- 条件运算符语法