package main import "fmt" func swap(a, b int) { a, b = b, a fmt.Printf("a = %d, b = %d\n", a, b) } func main() { a, b := , //通过一个函数交换a和b的内容 swap(a, b) //变量本身传递,值传递(站在变量角度) fmt.Printf("a = %d, b = %d\n", a, b) } 这个函数的执行结果为 a =…
function setAge(i) { alert(i);//24 i = 18; alert(i);//18,i的改变不会影响外面的age }; var age = 24; setAge(age); alert(age);//24 当传入的是 基本类型的参数时:就是复制了份内容给i而已,i与age之间没有关系. function setName(obj) { obj.name = 'haha'; }; var obj2 = {}; setName(obj2); alert(obj2.name…
如题所示,我们主要讨论在自定义的内存分配函数中通常见到的代码如下所示: void Create(A** addr); 其中传递的参数是二级指针.为什么? 我们先看一下完整的动态内存分配函数的简单例子: struct A { int a = 0; int b = 0; int c[3]; }; void Create(A** addr) { printf("a1: %p\n", addr); *addr = new A(); printf("a2: %p\n", ad…