C语言函数调用定义

来源:百度知道 编辑:UC知道 时间:2024/05/17 08:15:03
若有以下函数首部
int fun(double x[10],int *n)
则下面针对此函数声母语句中正确的是________。
A)int fun(double x,int *n); B)int fun(double ,int);
C)int fun(double*x,int n); D)int fun(double *,int*);

选择D,定义的时候出现double x[10],说明第一个参数是一个数组,大小为10,所以传入的应该是数组首地址或者指向数组的指针。第二个参数比较明显,传的是指针。

D,函数调用中形式参数是数组的时候实际上是该数组的首地址指针,只不过它是以数组的形式写的,对于编译器来说,它就是一个指针,而且和数组首地址的性质还不一样,因为在函数中甚至可以有x++的操作,但是如果是数组的话肯定不能进行此操作,而且你在函数中输出x的长度也是4,即一个指针的大小,而并非数组的大小,可以形式参数中的数组实际上只是个指针,对于第二个就不用解释了,然后就是声明的时候形参只有类型是允许的,即名字不是必须的