C语言 指针引用和间接引用[已关闭]

w6lpcovy  于 12个月前  发布在  其他
关注(0)|答案(1)|浏览(78)

已关闭。此问题需要details or clarity。目前不接受回答。
**要改进此问题吗?**通过editing this post添加详细信息并阐明问题。

3天前关闭。
Improve this question
如果我传递一个指向内存地址的指针,比如:

int main() {
  Node* start = &a1;
  int out = loop(start);
  return out;
}

字符串
如何正确设置指针:

int loop(const Node* node) {
  Node* cur = &node;
  ...
}


我会认为将指向const Node* node的指针解引用为*node,呈现指向内存地址的指针,但这是不允许的,允许的是Node* cur = &node,但这是指向传入指针的内存地址的指针。在这种情况下,如何解决指针间接?

3npbholx

3npbholx1#

&nodecur不起作用,因为前者的类型为Node **(即指向节点的指针),后者的类型为Node *(即指向节点的指针)。
node的类型是const Node *cur的类型是Node *。两者都是指向同一类型的指针(一个是const,另一个不是),所以只需将const添加到cur并直接赋值即可。

const Node *cur = node;

字符串

相关问题