go语言中的指针和c++的指针的区别

发布于 2022-08-29 23:58:40 字数 34 浏览 11 评论 0

不太清楚go语言中的指针和c++的指针的区别在哪里

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

赢得她心 2022-09-05 23:58:41

Go 语言里面的指针和 C++ 指针一样,都是指向某块内存的地址值,可以解引用,不同只是在于 C++ 里可以直接对指针做算术运算(+、-、++、--)而 Go 里面不行。

差别真的仅限于此,而且 Go 还提供了一些底层的库 reflectunsafe,它们可以让使用者把任意一个 Go 指针转成 uintptr 类型的值,然后再像 C++ 一样对指针做算术运算,最后再还原成 Go 类型。所以从这个角度上来说,Go 的指针也是可以和 C++ 指针一样使用的,只是会比较绕,这同时也要求使用者自己明白,如果真要把指针这么用,那么请记得后果自负。

下面就是一个在 Go 里面直接操作内存指针的例子:

http://play.golang.org/p/z_GMnh38Z1 (需翻墙)

玻璃人 2022-09-05 23:58:41

不知道你熟悉C#语言里面的ref关键字吗?意思就是按引用传递。
仅此而已,既不能做指针运算,也不能解引用。

懒的傷心 2022-09-05 23:58:41

其实是一样的,Go只是做了一些封装,用起来相对比较好理解

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文