From ab4a8bbbea3597ccba016ba06ba81918dfba6a47 Mon Sep 17 00:00:00 2001 From: RickyWang1020 <50431019+RickyWang1020@users.noreply.github.com> Date: Fri, 28 Aug 2020 12:59:11 +0800 Subject: [PATCH] Update golang_tutorial_15.md --- docs/golang_tutorial_15.md | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/docs/golang_tutorial_15.md b/docs/golang_tutorial_15.md index 7834175..6abc9f6 100644 --- a/docs/golang_tutorial_15.md +++ b/docs/golang_tutorial_15.md @@ -279,3 +279,22 @@ func main() { } ``` +在第 13 行,我们将一个切片传入了 `modify` 函数,这个函数将切片的第一个元素改为 `90`,程序输出仍然是:`[90 90 91]`。 **因此,不要再把指向数组的指针传入函数了,应该使用的是切片 :)** + +## Go 不支持指针的算术运算 + +不像 C/C++ 中的指针可以进行算术运算,Go 语言并不支持指针算术运算。 + +```golang +package main + +func main() { + b := [...]int{109, 110, 111} + p := &b + p++ +} +``` + +上面的程序会出现编译错误:`main.go:6: invalid operation: p++ (non-numeric type *[3]int)`。 + +我(原文作者)在 [github](https://github.com/golangbot/pointers) 上创建了一个简单的小程序,包含了我们这次所学的全部内容。