go 语言指针(一)

首先我们从变量开始

什么是变量,变量是内存地址的名称。

定义一个变量,就是在内存中分配一个空间,空间内存有变量的值。

指针也是变量,指针变量也是内存地址的名称,指针的地址中存的是指针指向变量的地址。

### 两个运算符

&  取地址运算符,可以取得任何变量的地址

* 指针运算符,有两个作用

1. 用于变量定义

var  p *int

该声明定义指针变量p ,p 是指向int 类型变量的指针。

2. 指针运算符

* p 作用是获得或改变指针p 指向变量的值

注意:不能获取改变空指针指向的值。

```go  

package main

import "fmt"

func main() {

    var a int = 10

    // 输出a 的值

    fmt.Printf("a =%d, a address = %p\n", a, &a)

    var p *int = &a

    // 输出p 的值16 进制显示

    fmt.Printf("p = %#x\n", p)

    // 输出p 变量的地址

    fmt.Printf("p address = %p\n", &p)

    // 输出p 指向的值

    fmt.Printf("*p = %d\n", *p)

}



p 是指针,一种特殊的变量类型,p 的值是a变量的地址, 

而变量p 的地址是0xc0000b2013,p 的值是0xc0000b2008

变量a 的地址 是0xc0000b2008 ,a 的值是 10

对指针p进行* 运算(* 是运算符)是取得p 指向变量a的值,也就是变量a的地址存储的值10。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。