w3resource

C programming: Find the Size of int, float, double, char, pointers and structure

C programming: sizeof() operator

The sizeof( ) operator returns the number of bytes needed to store a variable or data type, so on most sytems, sizeof( int ) would yield 4, as would sizeof( number ) if number were a variable of type int.

Examples of operator sizeof():

Code:

Example: Using directory and sub-directories in C

#include<stdio.h>
#include <string.h>
#define MAX 20

/* A structure representing a record in a student database */
struct Student
  {
    char *f_name;// first name
    char l_name[20];// last name
    int id_number;	// social security number
    double grade_point;	// grade point average
  };

int main(){
  //structure declarations
  struct Student s1;
  strcpy(s1.f_name, "Rosa");
  strcpy(s1.l_name, "Rowe");
  s1.id_number = 123;
  s1.grade_point = 88.89;
  struct Student s2;      
  struct Student *s3 = &s2; 
  struct Student s4[10];
    
  //"regular" datatype declarations
  char a, b[10], *p1 = b;
  int c, d[10], *p2 = d;
  double e, f[10], *p3 = f;
  
  printf("Size of for regular datatype:");
  printf("\nSize of 'char a' = %d Byte(s).",sizeof(a));
  printf("\nSize of 'char b[10]' = %d Byte(s).",sizeof(b));
  printf("\nSize of 'int c' = %d Byte(s).",sizeof(c));
  printf("\nSize of 'int d[10]' = %d Byte(s).",sizeof(d));
  printf("\nSize of 'double e' = %d Byte(s).",sizeof(e));
  printf("\nSize of 'double f[10]' = %d Byte(s).",sizeof(f));
  
  printf("\n\nSize of for pointers to regular datatypes:");
  printf("\nSize of 'char p1' = %d Byte(s).",sizeof(p1));
  printf("\nSize of 'char *p1' = %d Byte(s).",sizeof(*p1));
  printf("\nSize of 'int p2' = %d Byte(s).",sizeof(p2));
  printf("\nSize of 'int *p2' = %d Byte(s).",sizeof(*p2));
  printf("\nSize of 'double p3' = %d Byte(s).",sizeof(p3));
  printf("\nSize of 'double *p3' = %d Byte(s).",sizeof(*p3));
  
  printf("\n\nSize of for structures:");
  printf("\nSize of (s1) = %d Byte(s).", sizeof(s1));
  printf("\nSize of (s2) = %d Byte(s).", sizeof(s2));
  printf("\nSize of (s3) = %d Byte(s).", sizeof(s3));
  printf("\nSize of (s4) = %d Byte(s).", sizeof(s4));
  
  printf("\n\nSize of for pointers to structure members:");
  printf("\nSize of f_name = %d Byte(s).", sizeof(s1.f_name));
  printf("\nSize of l_name = %d Byte(s).", sizeof(s1.l_name));
  printf("\nSize of ID number = %d Byte(s).", sizeof(s1.id_number));
  printf("\nSize of grade point = %d Byte(s).", sizeof(s1.grade_point));

  return 0;
}

Output:

Size of for regular datatype:
Size of 'char a' = 1 Byte(s).
Size of 'char b[10]' = 10 Byte(s).
Size of 'int c' = 4 Byte(s).
Size of 'int d[10]' = 40 Byte(s).
Size of 'double e' = 8 Byte(s).
Size of 'double f[10]' = 80 Byte(s).

Size of for pointers to regular datatypes:
Size of 'char p1' = 8 Byte(s).
Size of 'char *p1' = 1 Byte(s).
Size of 'int p2' = 8 Byte(s).
Size of 'int *p2' = 4 Byte(s).
Size of 'double p3' = 8 Byte(s).
Size of 'double *p3' = 8 Byte(s).

Size of for structures:
Size of (s1) = 40 Byte(s).
Size of (s2) = 40 Byte(s).
Size of (s3) = 8 Byte(s).
Size of (s4) = 400 Byte(s).

Size of for pointers to structure members:
Size of f_name = 8 Byte(s).
Size of l_name = 20 Byte(s).
Size of ID number = 4 Byte(s).
Size of grade point = 8 Byte(s).


Become a Patron!

Follow us on Facebook and Twitter for latest update.

It will be nice if you may share this link in any developer community or anywhere else, from where other developers may find this content. Thanks.

https://www.w3resource.com/c-programming-exercises/c-snippets/c-programming-sizeof-operator.php