diff --git a/docs/cpp_lifetime.md b/docs/cpp_lifetime.md index 8342f0a..1e597af 100644 --- a/docs/cpp_lifetime.md +++ b/docs/cpp_lifetime.md @@ -75,7 +75,7 @@ void func() { ```cpp void func() { Class *p = new Class; // *p 是动态存储周期 - delete p; // 释放动态分配的内存 + delete p; // 调用 Class 析构函数并释放动态分配的内存 } ``` @@ -84,7 +84,9 @@ void func() { > 特别注意,`p` 依然是“栈上变量”,`p` 指向的 `*p` 才是“堆上变量”! -> 用律师语再说一遍:`p` 是自动存储周期,`p` 指向的 `*p` 才是动态存储周期!(白律师最满意的一集) +> 用律师语再说一遍: +> `p` 只是函数局部对象,拥有自动存储期。它指向的对象才是动态存储期。 +> 指针对象本身与指针对象所指向的对象,彼此之间并无任何关系。你可以说 `p` 指向 `*p`,因为 `*p` 表达式返回了指针所指向对象的引用。“所谓*指向*”,无非是指针对象存储了另一个对象的地址 指针本身,和指针指向的对象,是两个东西,不要混淆。