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) 上创建了一个简单的小程序,包含了我们这次所学的全部内容。