请讲解一下这个语句: k=b?c:a;

shared2013 2012-06-18 12:07:28
请讲解一下这个语句: k=b?c:a;

k=b,条件判断可以这么用的?
...全文
167 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
sundayX 2012-06-18
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 的回复:]

赋值运算也有返回值,所以这个表达式编译不会出错。赋值运算返回的是所赋的值,此处k=b返回的是b的值,所以如果b是0则该表达式执行的是a,如果b是1、2等数则执行c。
虽然这个表达式没有错,但是其真正意图应该是比较k和b是否相等,大概是代码写错了,应该是
C/C++ code
k==b?c:a
[/Quote]
++
  • 打赏
  • 举报
回复
如果b为真则,返回C值,否则a
zaixiankaifa 2012-06-18
  • 打赏
  • 举报
回复
三目运算符
zyb_debug 2012-06-18
  • 打赏
  • 举报
回复
代码写错了。。k=a

等价于
C/C++ code

if(b)
{
k = c;
}
else
{
k=a;
}
[/Quote]
zyb_debug 2012-06-18
  • 打赏
  • 举报
回复
等价于

if(b)
{
k = c;
}
else
{
k=b;
}
zyb_debug 2012-06-18
  • 打赏
  • 举报
回复
k=b?c:a

如果b不是0 则k=c
如果b==0 则k=a
cyycxz 2012-06-18
  • 打赏
  • 举报
回复
如果k=b成立的话返回C的值,不成立则反。
KING_314 2012-06-18
  • 打赏
  • 举报
回复
三目运算符 去仔细看看C++ primer
酱油党 2012-06-18
  • 打赏
  • 举报
回复
赋值运算返回值就是你赋的值!

k=b?c:a//b==0 -->false  -->a else -->c 

Corner 2012-06-18
  • 打赏
  • 举报
回复
赋值运算也有返回值,所以这个表达式编译不会出错。赋值运算返回的是所赋的值,此处k=b返回的是b的值,所以如果b是0则该表达式执行的是a,如果b是1、2等数则执行c。
虽然这个表达式没有错,但是其真正意图应该是比较k和b是否相等,大概是代码写错了,应该是
k==b?c:a

ITDeng 2012-06-18
  • 打赏
  • 举报
回复
赋值会返回真,所以这个语句会返回c
疯疯癫癫 2012-06-18
  • 打赏
  • 举报
回复

int a=1;
int c=2;
int b=(a>c)?2:3;   // b=3

a=2;
c=1;
int b=(a>c)?2:3;   // b=2
AnYidan 2012-06-18
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]
三目运算符
[/Quote]

翻翻语法

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧