C语言中数组做函数参数的问题

数组做函数参数,会退化成为一个指针变量。因此在进行数组参数传递的同时,需要传递一个数组长度的参数变量。

数组长度可以通过sizeof(arr)/siezof(arr[0])来得到。关于这个sizeof操作符,简单的理解就是求得指针指向的内存块的大小。

当数组作为实参进行传递的时候,被调用函数中的形参的数据类型和实参所传递过来的数据类型是不一样。

也就是说,写在形参位置上的数组,表面上是数组,但是编译器会将它当作是一个指针,只会分配4个字节的内存。

形参写在括号内,和写在函数中第一行是等价的,只是第一种提供了对外的接口而已。

posted @ 2017-10-05 16:36  niudong  阅读(1350)  评论(0编辑  收藏  举报