C Programming/Data Types

From Chorke Wiki
Jump to navigation Jump to search

Data types in C refer to an extensive system used for declaring variables or functions of different types. The type of a variable determines how much space it occupies in storage and how the bit pattern stored is interpreted.

Types Description
Basic Types They are arithmetic types and are further classified into: (a) integer types and (b) floating-point types.
Enumerated types They are again arithmetic types and they are used to define variables that can only assign certain discrete integer values throughout the program.
The type void The type specifier void indicates that no value is available.
Derived types They include (a) Pointer types, (b) Array types, (c) Structure types, (d) Union types and (e) Function types.


Integer Types

Type Storage size Value range
char 1 byte -128 to 127 or 0 to 255
unsigned char 1 byte 0 to 255
signed char 1 byte -128 to 127
int 2 or 4 bytes -32,768 to 32,767 or -2,147,483,648 to 2,147,483,647
unsigned int 2 or 4 bytes 0 to 65,535 or 0 to 4,294,967,295
short 2 bytes -32,768 to 32,767
unsigned short 2 bytes 0 to 65,535
long 4 bytes -2,147,483,648 to 2,147,483,647
unsigned long 4 bytes 0 to 4,294,967,295
//main.c
#include <stdio.h>
#include <limits.h>

int main()
{
   printf("Storage size of int : %d \n", sizeof(int));
   return 0;
}

Floating-Point Types

Type Storage size Value range Precision
float 4 byte 1.2E-38 to 3.4E+38 6 decimal places
double 8 byte 2.3E-308 to 1.7E+308 15 decimal places
long double 10 byte 3.4E-4932 to 1.1E+4932 19 decimal places
//main.c
#include <stdio.h>
#include <float.h>

int main()
{
   printf("Storage size of float       : %d \n", sizeof(float));
   printf("Minimum float positive value: %E \n", FLT_MIN );
   printf("Maximum float positive value: %E \n", FLT_MAX );
   printf("Precision value             : %d \n", FLT_DIG );
   return 0;
}

The void Type

  1. Function returns as void: There are various functions in C which do not return any value or you can say they return void. A function with no return value has the return type as void. For example, void exit (int status);
  2. Function arguments as void: There are various functions in C which do not accept any parameter. A function with no parameter can accept a void. For example, int rand(void);
  3. Pointers to void: A pointer of type void * represents the address of an object, but not its type. For example, a memory allocation function void *malloc( size_t size ); returns a pointer to void which can be casted to any data type.