golang中指针的使用方法

指针的基本意义是存储某些值所在的内存地址。

颍上网站建设公司创新互联公司,颍上网站设计制作,有大型网站制作公司丰富经验。已为颍上数千家提供企业网站建设服务。企业网站搭建\成都外贸网站建设要多少钱,请找那个售后服务好的颍上做网站的公司定做!

在 Golang 中,虽然不是所有的值都可以取出地址(尽管他们也存储在内存中,比如 const),但所有的变量必然可以取出地址。

变量,就是一块内存区域中存储的值[1]。不仅我们熟悉的 var x int 中的 x 是变量,一个比较复杂的表达式也可以表示一个变量,比如sliceA[0],mapB["key"],以及structC.FieldD。也就是说,他们都可以有自己的指针。

当我们需要修改结构体的变量内容的时候,方法传入的结构体变量参数需要使用指针,也就是结构体的地址,需要修改map中的架构体的变量的时候也需要使用结构体地址作为map的value。

Go 可以直接新建 struct 的指针

在 golang 中,我们可以通过ptr := &A{Value: 1},就得到了一个结构体 A 值的指针;但在 C 中就无法通过单独的赋值语句得到:

typedef struct {    
int value;
} 
A;A *ptr1; // 无法给 ptr 所指的值赋值
A *ptr2 = &A{1}; // 没有这样的语法
A a = {1}; // 再通过 &a 可以得到指针

如果说这个区别只是语法上的表象,另外一个区别可能就是事关 bug 的区别了。

2. Go 中可以安全地返回局部变量的指针

在上面的 C 代码举例中,我们确实可以声明一些变量,但如果这些声明是在一个方法内完成的,比如:

A *init(){
    A *ptr;
    return ptr;}

或者

A *init(){
    A a;
    return &a;}

那么,这个声明出来的局部变量,是一种自动变量(automatic variable[3]),原方法,也就是 init() 方法,结束后,这些自动变量就“消失”了。

以上就是golang 指针怎么用的详细内容,更多请关注创新互联其它相关文章!

分享标题:golang中指针的使用方法
路径分享:https://www.cdcxhl.com/article4/gighie.html

成都网站建设公司_创新互联,为您提供微信小程序外贸网站建设静态网站网站收录软件开发响应式网站

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

商城网站建设