首页 > 解决方案 > 为什么在函数名中使用取消引用“*”运算符?

问题描述

我目前一直在学习斯坦福在线提供的这门入门编程课程,CS106B。在链接列表结构中,教授实现了我无法理解的这段代码。

 Entry *GetNewEntry(){

    cout << "Enter name (ENTER to quit):";
    string name = GetLine();
    if (name == "") return NULL;
    Entry *newOne = new Entry; // allocate in heap
    newOne->name = name;
    cout << "Enter address: ";
    newOne->address = GetLine();
    cout << "Enter phone: ";
    newOne->phone = GetLine();
    newOne->next = NULL; // no one follows
    return newOne;
}

谁能帮我理解为什么在函数名之前有一个取消引用运算符。如果我们删除它会发生什么变化?我试图用谷歌搜索它,但我没有收到任何令人满意的答案。

标签: c++

解决方案


函数的返回值GetNewEntry是一个类型的指针Entry *

如果您*按原样从代码中删除 ,您最终会返回 a Entry,并且代码将无法编译,因为newOne是 a Entry *


推荐阅读