gpt4 book ai didi

c++ - C 和 C++ 之间的条件运算符差异

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:57:22 28 4
gpt4 key购买 nike

我在某处读到 C 中的 ?: 运算符在 C++ 中略有不同,有些源代码在两种语言中的工作方式不同。不幸的是,我无法在任何地方找到文本。有谁知道这个区别是什么?

最佳答案

C++ 中的条件运算符可以返回左值,而 C 不允许类似的功能。因此,以下在 C++ 中是合法的:

(true ? a : b) = 1;

要在 C 中复制它,您将不得不求助于 if/else,或直接处理引用:

*(true ? &a : &b) = 1;

同样在 C++ 中,?:= 运算符有 equal precedence and group right-to-left ,这样:

(true ? a = 1 : b = 2);

是有效的 C++ 代码,但在最后一个表达式两边没有括号的情况下会在 C 中抛出错误:

(true ? a = 1 : (b = 2));

关于c++ - C 和 C++ 之间的条件运算符差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16419038/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com