Considere el siguiente segmento de programa C:
char p[20]; char *s = "string"; int length = strlen(s); int i; for (i = 0; i < length; i++) p[i] = s[length — i]; printf("%s", p);
La salida del programa es? (GATE CS 2004)
(A) gnirts
(B) gnirt
(C) string
(D) no se imprime ninguna salida
Respuesta: (D)
Explicación: Consideremos la siguiente línea dentro del bucle for
p[i] = s[longitud — i ];
Para i = 0, p[i] será s[6 — 0] y s[6] es ‘\0′
Entonces p[0] se convierte en ‘\0’. No importa lo que venga en p[1], p[2]….. ya que P[0] no cambiará para i >0. No se imprime nada si imprimimos una string con el primer carácter ‘\0’
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