Go语言基础05-指针和值

指针和值

&操作符用于取一个值的地址。简单说,就是让一个值变成它的地址。
*和&刚好相反,是让指针变成它内存内的值。

var a int = 33
b := &a  //b 是一个指向a内存地址的指针, *int类型
fmt.Println(*b)  //  33, *b和 a 是同一块内容地址的内容

*符号放在类型前边,表示这个类型的指针类型。比如上述的 b 类型是 *int,一个整数指针类型。

对于传入函数的参数,有2种情况。

  1. 在函数内部修改传入参数,对函数外部该参数无影响。因为传入的是一个复制的值。
    一般是直接传入字面量类型。
  2. 函数内部修改,也修改了函数外部的值。因为传入的是一个指针。
    有2种情况,一是传入 字面量类型的指针,二是传入引用类型

你可能感兴趣的:(Go语言基础05-指针和值)