值类型和引用类型

package main

import “fmt”
func main(){
//基本数据类型在内存布局
var i int = 10
//i 的地址怎么取出来
fmt.Println(“i的地址”,&i)
//下面的 var ptr *int =&i
//1.ptr 是一个指针变量
//2.ptr 的类型 *int
//3.ptr 本身的&i
var ptr *int = &i
fmt.Println(“ptr=%v\n”,ptr)
fmt.Println(“ptr的地址时=%v”,&ptr)
fmt.Println(“ptr 只想的值=%v”,*ptr)

//var num int = 9
//fmt.Printf("num address=%v\n",&num)

//var ptr *int
//*ptr =10//这里修改时,会到num的值变化
//fmt.Println("num=",num)
//值类型和引用类型的说明
//值类型:基本数据类型int系列,float系列,bool,string、数组和结构体struct
//值类型数据,通常是在栈区

//引用类型:指针、slice切片、map、管道chan、interface等都是引用类型
//堆区引用类型,通常在堆区分配空间逃逸分析

//值类型:变量直接存储值,内存通常在栈中分配
//引用类型:变量存储的是一个地址,这个地址对应的空间才真正存储数据(值),内存通常在堆上分配,当没有任何变量引用这个地址时,该地址对应的数据空间就成为一个垃圾,由Gc来回收

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值