在调试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 |
|小黑屋| 飞凌嵌入式 ( 冀ICP备12004394号-1 )
GMT+8, 2024-11-23 11:13
Powered by Discuz! X3.4
© 2001-2013 Comsenz Inc.