PUERTA | PUERTA CS Simulacro 2018 | Juego 2 | Pregunta 42

S1: Cualquiera de los siguientes se puede usar para declarar un Node para una lista enlazada individualmente. Si usamos la primera declaración, “struct node * nodePtr;” se usaría para declarar un puntero a un Node. Si usamos la segunda declaración, “NODEPTR nodePtr;” se puede utilizar para declarar un puntero a un Node.

/* First declaration */
struct node {
int data;
struct node * nextPtr;
};

/* Second declaration */
typedef struct node{
int data;
NODEPTR nextPtr;
} * NODEPTR;

S2: Cualquiera de los siguientes se puede usar para declarar un Node para una lista enlazada de forma individual y «NODEPTR nodePtr»; se puede usar para declarar un puntero a un Node usando cualquiera de los siguientes

/* First declaration */
typedef struct node
{
 int data;
 struct node *nextPtr;
}* NODEPTR;

/* Second declaration */
struct node
{
 int data;
 struct node * nextPtr;
};
typedef struct node * NODEPTR;

(A) El enunciado S1 es verdadero y el enunciado S2 es falso
(B) El enunciado S2 es verdadero y el enunciado S1 es falso
(C) Ambos enunciados S1 y S2 son verdaderos
(D) Ni el enunciado S1 ni el enunciado S2 son verdaderos

Respuesta: (B)
Explicación: S1: el uso de typedef es incorrecto. Básicamente, no podemos usar todavía el tipo de datos typedef-ed dentro mientras se aplica typedef en sí. Aquí, NODEPTR aún no se ha definido (es decir, typedef-ed) y estamos usando NODEPTR dentro de la estructura misma.

S2: Sí. Ambos son equivalentes. Cualquiera de las declaraciones anteriores se puede utilizar para «NODEPTR nodePtr;». De hecho, el primero es la forma compacta del segundo.
Cuestionario de esta pregunta

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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *