返回cur == NULL吗? -1:cur-> val; (我对这c ++句子感到困惑)

时间:2018-09-01 21:08:27

标签: c++

    /** Helper function to return the index-th node in the linked list. */
SinglyListNode* getNode(int index) {
    SinglyListNode *cur = head;
    for (int i = 0; i < index && cur; ++i) {
        cur = cur->next;
    }
    return cur;
}
/** Helper function to return the last node in the linked list. */
SinglyListNode* getTail() {
    SinglyListNode *cur = head;
    while (cur && cur->next) {
        cur = cur->next;
    }
    return cur;
}
/** Get the value of the index-th node in the linked list. If the index is invalid, return -1. */
int get(int index) {
    SinglyListNode *cur = getNode(index);
    return cur == NULL ? -1 : cur->val;
}

此“ return cur == NULL吗? -1:cur-> val; ”

我对这种语法感到困惑,有人可以分开这句话吗?

1 个答案:

答案 0 :(得分:0)

这是ternary operator。也称为条件运算符。

这用作一个班轮条件声明。

这等效于:

if (cur == NULL)
{
    return -1;
}
else
{
    return cur->pos;
}

请参考上面的链接以获取更多信息。