x = y/* put y into x */
y = temp /* put temp into y */
return temp;
}
让我们把上面的代码放在一个C文件 , 编译并执行它,它会产生以下结果:
Before swap, value of a :100
Before swap, value of b :200
After swap, value of a :100
After swap, value of b :200
这表明,参数值没有被改变,虽然它们已经在函数内部改变 。
通过传递函数参数,即是拷贝参数的地址到形式参数的参考方法调用 。在函数内部,地址是访问调用中使用的实际参数 。这意味着 , 对参数的更改会影响传递的参数 。
要通过引用传递的值,参数的指针被传递给函数就像任何其他的值 。所以,相应的,需要声明函数的参数为指针类型如下面的函数swap(),它的交换两个整型变量的值指向它的参数 。
代码如下:
/* function definition to swap the values */
func swap(x *int, y *int) {
var temp int
temp = *x/* save the value at address x */
*x = *y/* put y into x */
*y = temp/* put temp into y */
}
现在,让我们调用函数swap()通过引用作为在下面的示例中传递数值:
代码如下:
package main
import "fmt"
func main() {
/* local variable definition */
var a int = 100
var b int= 200
fmt.Printf("Before swap, value of a : %d\n", a )
fmt.Printf("Before swap, value of b : %d\n", b )
/* calling a function to swap the values.
* a indicates pointer to a ie. address of variable a and
* b indicates pointer to b ie. address of variable b.
*/
swap(a, b)
fmt.Printf("After swap, value of a : %d\n", a )
fmt.Printf("After swap, value of b : %d\n", b )
}
func swap(x *int, y *int) {
var temp int
temp = *x/* save the value at address x */
*x = *y/* put y into x */
*y = temp/* put temp into y */
}
让我们把上面的代码放在一个C文件,编译并执行它,它会产生以下结果:
Before swap, value of a :100
Before swap, value of b :200
After swap, value of a :200
After swap, value of b :100
这表明变化的功能以及不同于通过值调用的外部体现的改变不能反映函数之外 。
golang引用变量是不是包含指针是的 。
根据百度查询显示,golang引用类型包括切片,映射,通道,接口和函数类型 。其中引用类型表示创建的变量包含一个指向底层数据结构的指针,所以golang引用变量是包含指针的 。
Go又称Golang是Google开发的一种静态强类型、编译型、并发型,并具有垃圾回收功能的编程语言 。
【go语言引用变量 go 引用】关于go语言引用变量和go 引用的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站 。
推荐阅读
- 广州外卖小程序教程,广州外卖贴吧
- cpu温度72是什么原因,cpu温度经常70几度是什么原因
- postgresql表定义,postGreSQL表分析
- 微信视频号怎么加空白段,视频号怎么打
- c语言打乱顺序函数 c语言打乱数组顺序
- 换硬盘怎么恢复文件,换了硬盘后怎么恢复正版系统
- 单表的增删查改html5,mvc增删改查表单
- 钉钉直播怎么学生打卡信息,钉钉直播课怎么打卡
- 路由器怎么设置网络,更换路由器怎么设置网络