之前对于参数的传值和传址一直不大明白,大概的意思知道,那么他们两个有什么区别,还有就是具体是怎样的参数传递还是不太懂。所以就上网搜了一些关于传值和传址的讲解。
先来简单说一下
传值:把A的数值传到B,改变B,A不会跟着变,B存的是跟A一样的值;
传址:把A的地址传到B,改变B,A同时跟着变,B存的只是A的地址(类似电脑的快捷方式)。
不知道你们对于第二个传址的解释有没有不懂的地方,反正我是对这句话比较迷茫“A同时跟着变”,把A的地址传到B,那么是B改变了,然后又说”A同时跟着变“,这真的就不懂了。
后来上网查了查,感觉恍然大悟,其实传址挺简单的。只要绕开那个弯儿就好了。传址,相当于是把A的地址传给B,所以说改变B的时候,相当于改变A,所以说B变的时候A也跟着变。
【效率比较】
一般而言,传址比传值效率高。因为传值对整个类型进行了拷贝,而传址只复制了地址。比如,现有一个结构体,存储了大量的数据。传值拷贝了整个结构体,而传址只是拷贝了地址。