易错点:
1.对象delete后没有将对应的指针赋值为nullptr 或NULL ,造成后续的判空问题。
2. C++的赋值都是值传递。体会差别:
3.指针的声明
struct Node{
int data;
Node* next;
Node(int d=0):data(d){};
};
int main()
{ //方法一:错误
n2= n->next;
Node* n2=new Node(2);
//方法二:正确
Node* n=new Node;
n->next=new Node();
}
方法一:第一步将n2的地址赋了一个空指针的地址,第二步,new运算符返回的是一个指向所分配类型变量(对象)的指针,让n2指向了新分配的地址,n->next没有指向n2,错误的根本原因,它指向了新的地址了,并没有在它这里开辟内存。
方法二:先new了一个内存的指针,然后让n->next 指向这个地址