在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
值传递与引用传递的解释上面提到了,当我们调用一个有参函数的时候,会把实际参数传递给形式参数。但是,在程序语言中,这个传递过程中传递的两种情况,即值传递和引用传递。我们来看下程序语言中是如何定义和区分值传递和引用传递的。 值传递(pass by value)是指在调用函数时将实际参数复制一份传递到函数中,这样在函数中如果对参数进行修改,将不会影响到实际参数。
引用传递(pass by reference)是指在调用函数时将实际参数的地址直接传递到函数中,那么在函数中对参数所进行的修改,将影响到实际参数。
Go语言指针什么是指针 就是变量在内存中的地址,它所指向的值的内存地址在32位和64位机器上分别占用4和8字节; 当一个指针被定义后 没有分配到 任何变量时,它的默认值为nil; 指针变量通常缩写为ptr 如何使用指针 示例1 package main import "fmt" func main(){ var a int = 20 //声明一个实际变量 var ptr *int //声明一个指针变量,代表ptr这个变量是 指针变量 ptr = &a //用&取出a的内存地址,并赋值给ptr fmt.Printf("ptr变量的结果是: %x",ptr) }
取地址操作符{ & }和取值操作符{ * }是一对互补操作符 { & }取出内存地址, 示例2 package main import "fmt" func main(){ var a int = 10 //声明一个实际变量 fmt.Printf("内存地址为:%x \n", &a) //获取a变量的内存地址 test(&a) //&a获取变量a的内存地址,传给test函数 } //声明一个函数,接收一个参数,参数 必须是指针类型,ptr为形参 func test(ptr *int) { fmt.Println(ptr) //打印内存地址 } 结果: 内存地址为:c000060090 0xc000010098
|
请发表评论