有关 c++ 中指针的说明

Clarifications about pointers in c++

本文关键字:说明 指针 c++ 有关      更新时间:2023-10-16

在这里,我有一些代码行有问题:

struct Node 
{
String data;
Node * next;
};
struct List
{
Node * head;
};
static Node  * nouvNode (string word,Node *p = nullptr){
Node  *pNouv = new Node ;
pNouv->data =word;
pNouv->next = p;
return pNouv;

好的,这是我的问题:

1)pNouv 这里是我创建的指针,指向一个节点。当我做pNouv=>next=p时,这是否意味着我在 pNouv 中的指针指向指针 p 也指向的下一个节点?或者我的指针指向一个笔记,该笔记也有一个指针指向另一个节点,其中 P 指向相同的方式?

2) static Node * nouvNode (string word,Node *p = nullptr)这是一种创建包含数据的新节点的方法,但为什么参数中需要有"节点 *p = nullptr"?例如,当我在程序中创建一个节点时,我会nouvNode(word, ls.head)执行此操作。

感谢您的帮助。

 pNouv->next=p  

根据我的理解,如果您执行上述语句pNouv节点开始指向p节点,这只不过是NULL。所以上面的代码语句等效于

pNouv=>next=NULL;

2) static Node * nouvNode (string word,Node *p = nullptr)

Node *p = nullptr作为第二个参数传递是可选的。你只需要word.您始终可以在函数主体中创建新节点并从头部遍历,然后最终将新创建的节点定位在所需位置。

1) pNouv->next = p表示结构中pNouv指向的结构中的结构成员next设置为指向与p相同的事物。所以有一个内存块。 pNouv指向该内存块。在该内存块中的某个位置,您将地址从 p .

2) = nullptr添加使该参数可选。您可以有效地调用nouvNode(word),您将收到一个值为 word

的节点,该节点不指向任何节点作为下一个节点。