1) ¿Cuál es la salida del siguiente programa?
#include <stdio.h> #include <string.h> int main(void) { char* p = "geeks"; printf("%lu %lu %lu ", sizeof(p), sizeof(*p), sizeof("geeks")); printf("%lu %lu", strlen(p), strlen("geeks")); return 0; }
Producción:
8 1 6 5 5
Explicación: p es un puntero, por lo que sizeof devuelve sizeof (char*), *p es de tipo char, sizeof(“geeks”) devuelve el número de caracteres, incluido el carácter nulo, strlen(p) devuelve la longitud de la string a la que apunta p sin carácter nulo y strlen devuelve el número de caracteres sin carácter nulo.
2) ¿Cuál es la salida del siguiente programa?
#include <stdio.h> int main() { int array[] = {[1] = 1, [0] = 2, [2] = 3 }; printf("%d %d %d", array[0], array[1], array[2]); return 0; }
Producción:
2 1 3
Explicación: la técnica de inicialización anterior es única pero está permitida en C.
3) ¿Cuál es la salida del siguiente programa?
#include <stdio.h> char A() { char c = 'B'; return c; } int main() { printf("%lu", sizeof(A())); return 0; }
Producción:
1
Explicación: incluso si se trata de un puntero de función, sizeof obtendrá el tipo de devolución y devolverá el tamaño de ese tipo de datos. Aquí, el tipo de devolución es char, por lo que la salida es 1.
4) ¿Cuál es la salida del siguiente programa?
#include <stdio.h> int main() { int n; n = (int)sizeof(!2.3); printf("%d", n); return 0; }
Producción:
4
Explicación: El ‘!’ El operador toma un argumento y devuelve 1 si el valor es 0 y 0 en caso contrario. Entonces, !2.3 es 0. To sizeof 0 es un número entero, por lo que la salida es 4.
5) ¿Cuál es la salida del siguiente programa?
#include <stdio.h> #define declare(x) int x; int main() { int a; declare(a) printf("declare(a)"); return 0; }
Producción:
Compilation error
Explicación: la declaración de la macro se reemplazará antes de la compilación y el código de resultado tendrá una declaración «int a» dos veces en el programa, lo que provocará un error de compilación.
Publicación traducida automáticamente
Artículo escrito por Avesh_Agrawal y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA