对于以下函数声明void fun(int array[4],int+ptr);以下叙述中正确的是( )。A.array,ptr都是指针变量B.调用fun函数时,实参的值将逐一复制给arrayC.调用fun函数时,array按值传送,ptr按地址传送D.array是数组,ptr是指针,它们的性质不同

题目

对于以下函数声明

void fun(int array[4],int+ptr);以下叙述中正确的是( )。

A.array,ptr都是指针变量

B.调用fun函数时,实参的值将逐一复制给array

C.调用fun函数时,array按值传送,ptr按地址传送

D.array是数组,ptr是指针,它们的性质不同


相似考题
更多“对于以下函数声明 void fun(int array[4],int+ptr);以下叙述中正确的是( )。A.array,ptr都是指 ”相关问题
  • 第1题:

    设有如下定义,则以下叙述中正确的是______。 int(*ptr)();

    A.ptr是指向一维数组的指针变量

    B.ptr是指向int型数据的指针变量

    C.ptr是指向函数的指针,该函数返回一个int型数据

    D.ptr是一个函数名,该函数的返回值是指向int型数据的指针


    正确答案:C
    解析:“int(*ptr)();”说明ptr是一个指向函数的指针,返回值是整型。*ptr两边的括号非常关键,表示*和ptr组合成一个指针变量,然后再和后边的圃括号结合,表示该指针变量*ptr是一个指向函数的指针变量。如果没有*ptr两边的括号,“int*ptr();”表示ptr是个函数,该函数返回指向整型数据的指针。

  • 第2题:

    设有以下函数:

    void fun(int n,char*$s){……}

    则下面对函数指针的定义和赋值均正确的是

    A.void(*pf)( );pf=fun;

    B.void*Pf( );pf=fun;

    C.void*pf( ); *pf=fun;

    D.void(*pf)(int,char);nf=&fun;


    正确答案:A
    解析:函数指针的定义形式是:数据类型标识符(*指针变量名)( )。void(*pf)( )定义了一个没有返回值的函数指针pf,在给函数指针变量赋值时,只需给出函数名而不必给出参数。所以给pf赋值时,只把函数名fun赋给pf即可。所以正确答案为选项A)。

  • 第3题:

    设有以下函数:

    voidfun(intn,char}s){……}

    则下面对函数指针的定义和赋值均正确的是( )。

    A.void(*pf)(int,char);pf=&fun;

    B.void+pf( );pf=fun;

    C.void*pf( );*pf=fun;

    D.void(*pf)(int,char*);pf=fun;


    正确答案:D
    函数的参数可以是指针类型。它的作用是将一个变量的地址传送到另一个函数中。函数名代表函数的人口地址,指向函数的指针应该定义为void(+pf)()。如果定义为void·pf(),则表示函数pf返回值为一个基类型为void的指针。因此D选项正确。

  • 第4题:

    设有以下函数: void fun(int n,char*s){…} 则下面对函数指针的定义和赋值均正确的是( )。

    A.void(*pf)( );pf=fun;

    B.void*pf( );pf=fun

    C.void*pf( );*pf=fun;

    D.void(*pf)(int,char);pf=&fun;


    正确答案:A
    函数指针的定义格式为函数类型(*指针变量名)(形参列表);函数名和数组名一样代表了函数代码的首地址,因此在赋值时,直接将函数指针指向函数名就行了。所以选项A正确。

  • 第5题:

    没有如下定义: int(*ptr)(): 则以下叙述中正确的是( )。

    A.ptr是指向一维组数的指针变量

    B.ptr是指向int型数据的指针变量

    C.ptr是指向函数的指针,该函数返回一个int型数据

    D.ptr是一个函数名,该函数的返回值是指int型数据的指针


    正确答案:C
    本题中int(*ptr)()的含义是指向函数的指针变量,其为指向函数的指针变量,该函数返回一个int型数据,故选择C选项。