20.C语言_数组参数传递
从反汇编中可以看到,传给调用函数的是参数的值本身,调用函数的处理改变,对原变量的值(上面存在 ebp-4 这里,函数调用完堆栈平衡后,值没有影响)没有影响。
这就是所谓的 值传递。
从反汇编得知,数组作为参数传递的是 数组第一个元素的内存地址 == 数组首地址(ebp-28h)。
总结1:数组作为参数时,传递的是地址;
2:数组作为参数时,应该传递数组的长度。
反汇编值完全一样。 arr [i] === *( p + i )
从反汇编中可以看到,传给调用函数的是参数的值本身,调用函数的处理改变,对原变量的值(上面存在 ebp-4 这里,函数调用完堆栈平衡后,值没有影响)没有影响。
这就是所谓的 值传递。
从反汇编得知,数组作为参数传递的是 数组第一个元素的内存地址 == 数组首地址(ebp-28h)。
总结1:数组作为参数时,传递的是地址;
2:数组作为参数时,应该传递数组的长度。
反汇编值完全一样。 arr [i] === *( p + i )