三目运算符在C语音和C++语言中的区别

 我来答
hostmanye
2017-04-05 · TA获得超过1057个赞
知道小有建树答主
回答量:511
采纳率:33%
帮助的人:197万
展开全部
三目运算符的返回类型不同。
C语言中,三目运算符返回的是变量值,不能作为左值使用。
C++中,三目运算符直接返回变量本身,因此可以作为左值使用。
例如:
int a = 2;
int b = 3;
(a>b?a:b) = 9;
这个例子可以在C++中使用,但是在C语言中,三目运算符返回的是整数常量,不能作为左值使用。
注意:在C++中,三目运算符作为左值的前提是 返回值是变量。 例如,下面这段代码在C++中不可以作为左值使用。
 (a>b?3:4) = 9;
 
想要在C语言中实现此效果,也可以,如下:
int a = 2;
int b = 3;
*(a>b?&a:&b) = 9;
风若远去何人留
2017-04-05 · 知道合伙人互联网行家
风若远去何人留
知道合伙人互联网行家
采纳数:20412 获赞数:450113
专业C/C++软件开发

向TA提问 私信TA
展开全部
没有区别
三目运算符 ?:
在C和C++中是完全相同的用法
都是 expr1?expr2:expr3的形式
表示 expr1如果为真, 则执行expr2 否则 执行expr3
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式