in

operador sizeof en C – GeeksforGeeks

gfg 200x200 min

Tamaño de es un operador muy utilizado en C o C ++. Es un operador unario en tiempo de compilación que se puede utilizar para calcular el tamaño de su operando. El resultado de sizeof es de tipo integral sin signo que generalmente se denota por size_t. sizeof se puede aplicar a cualquier tipo de datos, incluidos tipos primitivos como tipos enteros y de punto flotante, tipos de puntero o tipos de datos compuestos como estructura, unión, etc.
Uso
tamaño de() El operador se utiliza de forma diferente según el tipo de operando.

1. Cuando el operando es un tipo de datos.
Cuando tamaño de() se usa con los tipos de datos como int, float, char … etc, simplemente devuelve la cantidad de memoria asignada a esos tipos de datos.
Veamos un ejemplo:

C

#include <stdio.h>

int main()

{

    printf("%lun", sizeof(char));

    printf("%lun", sizeof(int));

    printf("%lun", sizeof(float));

    printf("%lu", sizeof(double));

    return 0;

}

C ++

#include <iostream>

using namespace std;

int main()

{

    cout << sizeof(char)<<"n";

    cout << sizeof(int)<<"n";

    cout << sizeof(float)<<"n";

    cout << sizeof(double)<<"n";

    return 0;

}

Nota: sizeof () puede dar una salida diferente según la máquina, hemos ejecutado nuestro programa en el compilador gcc de 32 bits.

2. Cuando el operando es una expresión.
Cuando tamaño de() se usa con la expresión, devuelve el tamaño de la expresión. Veamos un ejemplo:

C

#include <stdio.h>

int main()

{

    int a = 0;

    double d = 10.21;

    printf("%lu", sizeof(a + d));

    return 0;

}

C ++

#include <iostream>

using namespace std;

int main()

{

    int a = 0;

    double d = 10.21;

    cout << sizeof(a + d));

    return 0;

}

Como sabemos por el primer caso, el tamaño de int y double es 4 y 8 respectivamente, a es una variable int mientras que d es una variable double. El resultado final será un doble, por lo tanto, la salida de nuestro programa es de 8 bytes.

Tipo de operador

sizeof () es un operador de tiempo de compilación. El tiempo de compilación se refiere al momento en que el código fuente se convierte en un código binario. No ejecuta (ejecuta) el código dentro de (). Veamos un ejemplo.

C ++

#include <iostream>

using namespace std;

int main() {

 int y;

 int x = 11;

 y = sizeof(x++);

 cout<<y<<" "<<x;

}

Si intentamos incrementar el valor de x, permanece igual. Esto se debe a que x se incrementa entre paréntesis y sizeof () es un operador de tiempo de compilación.

Necesidad de Sizeof
1. Para averiguar la cantidad de elementos en una matriz.
Sizeof se puede utilizar para calcular el número de elementos de la matriz automáticamente. Veamos el ejemplo:

C

#include <stdio.h>

int main()

{

    int arr[] = { 1, 2, 3, 4, 7, 98, 0, 12, 35, 99, 14 };

    printf("Number of elements:%lu ", sizeof(arr) / sizeof(arr[0]));

    return 0;

}

C ++

#include <iostream>

using namespace std;

int main()

{

    int arr[] = { 1, 2, 3, 4, 7, 98,

    0, 12, 35, 99, 14 };

    cout << "Number of elements: "

    <<(sizeof(arr) / sizeof(arr[0]));

    return 0;

}

Producción:
Number of elements: 11

2. Asignar un bloque de memoria de forma dinámica.
sizeof se utiliza mucho en la asignación de memoria dinámica. Por ejemplo, si queremos asignar memoria para la que sea suficiente para contener 10 enteros y no conocemos el tamaño de (int) en esa máquina en particular. Podemos asignar con la ayuda de sizeof.

C

int* ptr = (int*)malloc(10 * sizeof(int));

Referencias
https://en.wikipedia.org/wiki/Sizeof
Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema discutido anteriormente.

Si desea aprender de los mejores videos seleccionados y problemas de práctica, consulte el Curso básico de C de Básico a Avanzado C.

Deja una respuesta

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

apple touch icon@2

¿Cómo fuerzo correctamente un empuje de Git?

220px Muffin

Muffin vs Scone – Diferencia y comparación