数组名作为函数参数时是一种特殊的情况,它不像传递普通变量。我们知道传递普通变量作为函数参数时,实际上是传递了这个变量的一个副本,所以在函数中修改变量的值不会影响变量本身的值,但是把数组名做参数传递时实际上传递的是数组的首地址,记住是地址!!! 所以在函数内对数组的操作会改变数组的内容。这和是不是常量没关系。。。
不管什么量(常量、变量)都可以做参数!
形参、实参都不过是变量、常量在某一种情况下的不同称谓,不要过多深究,这只是一种叫法,没多大实在意义。
参数在传递过程中都是传递的变量的数值,如果是地址值 ,则我们可以在这个地址中进行数据改变,但并没有改变参数本身的值。
当然,在子函数中,我们可以改变参数的值,但这只不过是改变了在子函数中的变量(形参)值,不影响调用者函数中的变量(实参)值。
形参只有在被调用是才会分配内存单元,在一般传值调用的机制中只能把实参传送给形参,而不能反过来。因此在函数调用过程中,形参值发生改变,而实参中的值不会变化。而在引用调用的机制(比如:数组名)当中是将实参引用的地址传递给了形参,所以任何发生在形参上的改变实际上也发生在实参变量上。
数组名代表的是这个数组的首地址!就是第一个元素的地址!
楼上的说的都很对,我就不一一打出来了。