【问题标题】:cannot initialize a variable of type 'Node *' with an rvalue of type 'const Node *'无法使用“const Node *”类型的右值初始化“Node *”类型的变量
【发布时间】:2019-11-07 03:08:04
【问题描述】:

这里有什么问题,&head 应该产生一个指向节点的指针,这是 cur 的类型,但显然存在类型不匹配?

我正在尝试使用其头部打印链表的元素

void printList(const Node& head){
  Node* cur = &head;
  cout<<"[ ";
  while(!(cur==0)){
    cout<<cur->x<<" ";
    cur = cur->next;
  }
  cout<<"]"<<endl;
}

无法使用“const Node *”类型的右值初始化“Node *”类型的变量是错误

【问题讨论】:

  • Head 是常量引用。您不能将其分配给非 const 变量。
  • cur的类型改为const Node*

标签: c++ reference


【解决方案1】:

Node* cur = head; 或者 const Node* cur = &amp;head;

这是因为 head 是一个 const 引用,您不能将它分配给普通的 cur(即 NODE*)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-01-08
    • 1970-01-01
    • 2019-10-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多