首页 > 解决方案 > 指针中的不同赋值

问题描述

正如您在代码中看到的,我为指针分配了不同的值:

  1. fin->siguiente = nuevo_nodo;
  2. 鳍=新节点;

这有什么区别吗?

void append(Nodo *&frente, Nodo *&fin, int valor){
    Nodo *nuevo_nodo = new Nodo();
    nuevo_nodo->valor = valor;
    nuevo_nodo->siguiente = nullptr;
    if(empty(frente)){
        frente = nuevo_nodo;
    }
    else{
        fin->siguiente = nuevo_nodo;
    }
    fin = nuevo_nodo;
}

标签: c++pointersstruct

解决方案


由于您已更改为问题,因此我也会更改答案。

当你的 else 部分运行时,你分配 'fin->siguiente = nuevo_nodo'。假设“fin”最初位于地址 1000,“nuevo_nodo”位于地址 2000。fin 的siguiente指针指向地址 2000。

在下一行中分配'fin = nuevo_nodo',所以fin 现在指向2000 地址并且没有分配'siguiente' 指针(第4 行)。


推荐阅读