Salida de programas C | Conjunto 63

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

Deja una respuesta

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