嵌入式爱好者

C语言 ? : 运算符和 == ? : 运算符

2018-7-27 16:34| 发布者: 飞凌-chongzi| 查看: 767| 评论: 0

类目: I.MX6系列产品  >  Linux     文档编号: 208

在调试Linux内核时遇到如下两个运算符:
? : 
== ? : 
1)== ? : 比较简单,这是个三目运算符,是C中独有的运算符
例:a==1?x:y
      如果a=1,则表达式的值为x,如果a不等于1.则表达式的值为y

2)? : 相对繁琐,做了个模型测试了一下,结果如下:
int r=0;(其余任意值都可以)
if(r ? : 1){
printf("1\n");
}else{
printf("2\n");
}
结果:1
if(r ? : 0){
printf("1\n");
}else{
printf("2\n");
}
结果:2(当r非零时会输出1)
所以当:后为1时,r取任意值,表达式判断为ture;当:后为0时,r非零为ture,r等于零为fulse

已解决

未解决

只是看看

最新评论

QQ|小黑屋| 飞凌嵌入式 ( 冀ICP备12004394号-1 )

GMT+8, 2024-4-19 12:21

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

返回顶部