C语言中“?”的用法

360U3098039440 |浏览467次
收藏|2021/11/24 21:12

满意回答

2021/11/24 21:24

?在C语言中用于三目运算符,语法格式为:逻辑表达式? 表达式1:表达式2其实它很好理解 ,就是条件判断 if else 的另一种表示相当于if (逻辑表达式) {表达式1 } else {表达式2}你的(CutCount % 2 == 0) ? (SetCutDataFun(Num,1),EquRunFlag.CutBreakReadValtageFlag = 1) : (SetCutDataFun(0,1),EquRunFlag.CutBreakReadValtageFlag = 0);等价于:if (CutCount % 2 == 0)(SetCutDataFun(Num,1),EquRunFlag.CutBreakReadValtageFlag = 1);else(SetCutDataFun(0,1),EquRunFlag.CutBreakReadValtageFlag = 0);

whoami1978

其他回答(2)
  • 这是条件操作符,由"?"和":"两部分构成。"?"前面是一个结果为bool值的条件表达式,而":"的前后则是这个条件为true或false时条件操作符会返回的表达式。看你这个语句应该是如果CutCount能整除2就返回(SetCutDataFun(Num,1),EquRunFlag.CutBreakReadValtageFlag = 1),否则返回(SetCutDataFun(0,1),EquRunFlag.CutBreakReadValtageFlag = 0)
    回答于 2021/11/24 21:52
  • (CutCount % 2 == 0) ? (SetCutDataFun(Num,1),EquRunFlag.CutBreakReadValtageFlag = 1) : (SetCutDataFun(0,1),EquRunFlag.CutBreakReadValtageFlag = 0);这是一个条件表达式,把字母简化一下:(C % 2 == 0) ? (Flag = 1) : (Flag = 0);其求值规则为:如果表达式(C % 2 == 0)的值为真(即C为偶数),则以表达式(Flag = 1)的值作为整个条件表达式的值,否则以表达式(Flag = 0)的值作为整个条件表达式的值。
    回答于 2021/11/24 21:38
0人关注该问题
+1

 加载中...