gpt4 book ai didi

c++ - C 和 C++ 之间的条件运算符区别

转载 作者:IT老高 更新时间:2023-10-28 13:58:58 27 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/1082655/

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