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