Considere el siguiente programa en C.
void f(int, short); void main() { int i = 100; short s = 12; short *p = &s; __________ ; // call to f() }
¿Cuál de las siguientes expresiones, cuando se coloca en el espacio en blanco de arriba, NO dará como resultado un error de verificación de tipo?
(A) f(s, *s)
(B) i = f(i,s)
(C) f(i,*s)
(D) f(i,*p)
Respuesta: (D)
Explicación: i es un número entero y *p es el valor de un puntero a corto.
1) La opción 1 es incorrecta porque estamos pasando «*S» como segundo argumento, verifique que S no sea una variable de puntero. Entonces, error
2) La segunda opción es que estamos tratando de almacenar el valor de f (i, s) en i pero mire la definición de función fuera de main, no tiene tipo de retorno. Simplemente es nulo, por lo que la asignación es incorrecta. Entonces, error
3) La opción 3 es incorrecta por la misma razón por la que la opción 1 es incorrecta
4) Entonces, la opción d es correcta.
Publicación traducida automáticamente
Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA