为什么如果说明未输入null时

Why if statement is not entering when Null

本文关键字:输入 null 未输 说明 如果 如果说 为什么      更新时间:2023-10-16

我有下一个代码,当raiz为null时未输入if语句

我已经尝试像if(raiz != NULL)一样尝试使用其他方式,并且在其他语句中试图运行代码:

masAlto = 1;
raiz = Nuevo;

这是我的代码:

void InsertaAVL(arbolAVL *raiz, arbolAVL *Nuevo, int masAlto)
{
    arbolAVL *a = raiz;
    int subarbolmasAlto = FALSO;
    if (raiz == NULL)
    {
        masAlto = 1;
        raiz = Nuevo;
    }
    else
    { 
        if (raiz->llave > Nuevo->llave)
        {
            //Insertar a la Izquierda
            InsertaAVL(raiz->Izq, Nuevo, subarbolmasAlto);
            if (subarbolmasAlto == VERDADerO)
            {
                switch(raiz->FBalance)
                {
                    case LH : BalanceIzquierdo(raiz,masAlto);
                        break;
                    case RH : raiz->FBalance = EH;
                        masAlto = FALSO;
                        break;
                    case EH : raiz->FBalance = LH;
                        masAlto = VERDADerO;
                        break;
                }
            }
            else
                masAlto = FALSO;
        }
        else
        {
            InsertaAVL(raiz->Der, Nuevo, subarbolmasAlto);
            if (subarbolmasAlto == VERDADerO)
            {
                switch(raiz->FBalance)
                {
                    case LH : raiz->FBalance = EH;
                        break;
                    case RH : BalanceDerecho(raiz,masAlto);
                        break;
                    case EH : raiz->FBalance = RH;
                        masAlto = VERDADerO;
                        break;
                }
            }
            else
                masAlto = FALSO;
        }
    }
}

我希望当 raiz null输入if语句

内的代码时

it dis 输入if语句true分支,尽管我更喜欢if (!raiz)作为条件,因为这对C的NULL和C 的nullptr表现良好。有效地,尽管true分支是一个无关,因为作业

masAlto = 1;
raiz = Nuevo;

对函数呼叫者传递的数量没有影响。您想要int* masAlto& c吗?作为参数?