要点:在调用函数时发生了引用传递,注意找函数中有没有对形参(此引用)的重新赋值操作!(这里赋值指的是引用赋值引用)
1、什么时候会发生引用传递,传数组,传类(不是基本数据类型),传指针(对C来说,Java没有)
2、发生引用传递时,假设实参为A,形参为B,实参A所分配的内存空间为spaceA,此时B也指向spaceA这块空间,也就是形参实参共指向。
那么在函数中,通过B改变spaceA空间中的值,A就会跟着变。
但是,如果在函数中,对B重新赋值了,情况就变了!!
B被重新赋值的话,便不再指向实参A的内存空间spaceA,假设B被修改指向spaceNew,那么之后在函数中对形参B操作,都跟A没关系了!!改变的都是spaceNew空间上的值,待结束函数调用,形参就被释放了,B是什么我们也不知道。
3、举例
实现两个矩阵相乘
实现A=A*B
static void Mul(int A[][],int B[][],int n)
{
int