初学者很多人对值传递和引用传递无法理解,我觉得他应该是对变量和变量的作用域理解不够。
变量。变量就是一块内存空间,变量=内存空间=地址+存储数据的空间(用来存数据值),如果我想获取变量的值,只能通过内存地址来获取,但是地址就像是0xc000012088之类的,0xc000012088最终也会转换成机器认识的0和1,计算机只能认识0和1,作为人类的我无法理解0和1,0xc000012088之类的地址也无法理解,假设我们用地址0xc000012088去变量的值,这不是自找难受吗? 那如果有一种方法就是我不用记住地址,并且我还能知道变量的值呢?
比如在golang中,声明一个变量a : var a int
当我想要给这个变量赋值时可以这样表示:a=1,这个a就是地址0xc000012088,通过建立这样联系,不用通过人类不理解的0xc000012088来给a赋值 ,不用知道内存地址时什么,反正我知道a已经有地址了,我不服按了,通过a来就知道内存地址,就可以给a赋值; 直接声明变量b : var b int ; 把5赋值给b:b=5 而不是b = Oxxxxxxxxxxx;
值传递与引用传递的理解
于 2023-05-11 20:40:09 首次发布
![](https://img-home.csdnimg.cn/images/20240711042549.png)