20.C语言_数组参数传递

从反汇编中可以看到,传给调用函数的是参数的值本身,调用函数的处理改变,对原变量的值(上面存在 ebp-4 这里,函数调用完堆栈平衡后,值没有影响)没有影响。

这就是所谓的  值传递。

 

从反汇编得知,数组作为参数传递的是 数组第一个元素的内存地址 == 数组首地址(ebp-28h)。 

总结1:数组作为参数时,传递的是地址;

  2:数组作为参数时,应该传递数组的长度。

 反汇编值完全一样。 arr [i] === *( p + i )

 

原文地址:https://www.cnblogs.com/RevelationTruth/p/14001902.html