搜索

首页  >  问答  >  正文

c++ - 三元运算符 a = b ?: c 是什么意思

注意:我很清楚 a = b ? c : d 是什么意思,可这不是我要问的问题。

三元运算符 a = b ?: c 是什么意思。注意, ?和: 是在一起的

高洛峰高洛峰2808 天前1277

全部回复(5)我来回复

  • PHP中文网

    PHP中文网2017-04-17 12:00:50

    帮你搜索了一下,见StackOverflow

    回复
    0
  • PHP中文网

    PHP中文网2017-04-17 12:00:50

    a = b ?: ca = b ? b : c 的简写。

    回复
    0
  • 黄舟

    黄舟2017-04-17 12:00:50

    雷雷

    回复
    0
  • ringa_lee

    ringa_lee2017-04-17 12:00:50

    虽然题主的问题的标签是C和C ,但我写了一个PHP的脚本测试了一下,结果如下:

    php<?php
    $b = true;
    $c = false;
    $a = $b ?: $c;
    var_dump($a); // 输出true
    
    $b = false;
    $c = true;
    $a = $b ?: $c;
    var_dump($a); // 输出true
    

    从输出结果来看,a = b ?: c的意思就是:如果btrue,则a = b,如果bfalse,则a = c

    回复
    0
  • 伊谢尔伦

    伊谢尔伦2017-04-17 12:00:50

    格式应该是

    (boolean表达式) ? a : b

    如果boolean表达式的内容为true,则a。
    如果boolean表达式的内容为false, 则b。

    举个例子:

    javapublic int test(int a) {
        if (a > 0) {
            return 1;
        } else {
            return -1;
        }
    }
    

    上面这个if-else可以用三元运算来代替,如下:

    java    public int test(int a) {
            return (a > 0) ? 1 : -1;
        }
    

    回复
    0
  • 取消回复