Red de conocimientos sobre prescripción popular - Cuidado de la salud en otoño - Hay una declaración int fun 4(int); int(*pf) (int)=fun4;

Hay una declaración int fun 4(int); int(*pf) (int)=fun4;

La respuesta es c.

Int fun4(Int) declara una función cuyos parámetros son variables int y el valor de retorno también es de tipo int.

int(* pf)(int)= fun 4; declara un puntero de función, apuntando a dicha función: el parámetro es una variable int, el valor de retorno también es un int, la función fun4 satisface esto condición, entonces en este momento El puntero pf apunta a la función fun4.

La siguiente es una discusión detallada del error en las opciones.

a: int a = 15; int n = fun 4(amp; a); El parámetro de la función fun4 es una variable int, pero en este momento se le asigna una dirección. La dirección, los parámetros explícitos y los parámetros reales son inconsistentes y se debe informar un error.

b: Es posible ejecutar el resultado. Lo ejecuté en VS2005 y el resultado fue 47. Sin embargo, dado que la función fun4 requiere que el parámetro sea de tipo int y a*3.14 es de tipo double, aquí existe una conversión de tipo, lo cual no es seguro y no se recomienda.

Directora: Correcto.

d; Error de formato *pf(256), que es un direccionamiento indirecto ilegal, provocará errores de compilación y la operación no se realizará.

¡Espero que esto ayude! !