若定义了以下函数: void f(……) { …… *p=(double *)malloc(10 * sizeof(double)); …… } p是该函数的形参,要求通过p把动态分配存储单元的地址传回主调函数,则形参p的正确定义应当是( )
A.double *p
B.float **p
C.double **p
D.float *p
第1题:
若定义了以下函数; void sub(……) {…… *t=(int *)malloc(10*sizeof(int)); …… } 其中t是该函数的形参,要求通过t把动态分配存储单元的地址传回主调函数,则形参t的正确定义应该是( )
A.int *t
B.int **t
C.long **t
D.long *t
第2题:
【单选题】若定义了以下函数: void f (…) { ... *p= (double*)malloc (10*sizeof(double)); ... } p是该函数的形参,要求通过p把动态分配存储单元的地址传回主调函数,则形参p的正确定义应当是 。
A.double *p
B.float **p
C.double **p
D.float *p
第3题:
下面语句是使指针p指向一个double类型的动态存储单元,请填空。 p=()malloc(sizeof(double));
第4题:
若主函数有变量定义:int x=1 ; double y=2.3 ; 且有合法的函数调用语句f (y , x); 则下列关于函数f的原型声明中一定错误的是 。
A.void f(double, int);
B.int f(int , int);
C.int f(double, double);
D.void f(double, int, int);
第5题:
以下哪个函数是不正确的(与能否被编译无关)?
A.int* f(int *p) { int i; return &i; }
B.int* f(int *p) { return p; }
C.int* f(int *p) { return (int*)malloc(sizeof(int)); }
D.int* f(int *p) { return NULL; }