From 94d5c5a077f3959a1a18faac25944a12e0ae42a2 Mon Sep 17 00:00:00 2001 From: mabaoer <2017011374@student.cup.edu.cn> Date: Sat, 23 Oct 2021 11:58:11 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E4=B8=8D=E6=81=B0=E5=BD=93?= =?UTF-8?q?=E4=BE=8B=E5=AD=90=20(#801)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- eBook/04.9.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eBook/04.9.md b/eBook/04.9.md index b753be8..e73dd00 100644 --- a/eBook/04.9.md +++ b/eBook/04.9.md @@ -109,7 +109,7 @@ ptr2 := &10 //error: cannot take the address of 10 所以说,Go 语言和 C、C++ 以及 D 语言这些低级(系统)语言一样,都有指针的概念。但是对于经常导致 C 语言内存泄漏继而程序崩溃的指针运算(所谓的指针算法,如:`pointer+2`,移动指针指向字符串的字节数或数组的某个位置)是不被允许的。Go 语言中的指针保证了内存安全,更像是 Java、C# 和 VB.NET 中的引用。 -因此 `c = *p++` 在 Go 语言的代码中是不合法的。 +因此 `p++` 在 Go 语言的代码中是不合法的。 指针的一个高级应用是你可以传递一个变量的引用(如函数的参数),这样不会传递变量的拷贝。指针传递是很廉价的,只占用 4 个或 8 个字节。当程序在工作中需要占用大量的内存,或很多变量,或者两者都有,使用指针会减少内存占用和提高效率。被指向的变量也保存在内存中,直到没有任何指针指向它们,所以从它们被创建开始就具有相互独立的生命周期。