C Data type

tutorial and example
tutorial and example

Data types are used to define the type of data that a variable can store to perform specific operation.

ANSI C provides three types of data-types.

  1. Primary Data Types
  2. Derived Data Type
  3. User Define Data Types

Primitive data types:

Void It holds no value and generallyused with function.
Int It is used to denote an integer type.
Char It is used to denote a character type.
float, double It is used to denote a floating point type.
int *, float *, char * It is used to denote a pointer type.

Primitive data types are used to hold the maximum value. Every C compiler supports five primary data types:

Example:

Derived  Data Type:

Derived data types are derived from fundamental data type.  Variable of derived data type allows us to store the value of same time in one variable.

C supports three derived data types:

Arrays Arrays are sequences of data items that have homogeneous values and adjacent memory locations to store values.
References Function pointers allow referencing functions with a particular signature.
Pointers It is used to access the memory and deal with their addresses.

Example:

int mark[5]={10,20,30,40};

int *a;

User Defined Data Types:

User-defined data type is used to store the multiple values. There are various user-defined data types are given below in table.

Data Types Description
Structure Structure is a package of variables under a single name. The “struct” keyword is used to define a structure.
Union It is used to store the various data types in the same memory location.
Enum It consists of integral constants and each of them is assigned with a specific name. It is defined as “enum” keyword.

Example

C Data Type with size

Let us consider an example to find the memory size of data type:

Data Types Memory Size Range
char 1 byte −128 to 127
signed char 1 byte −128 to 127
unsigned char 1 byte 0 to 255
short 2 byte −32,768 to 32,767
signed short 2 byte −32,768 to 32,767
unsigned short 2 byte 0 to 65,535
int 2 byte −32,768 to 32,767
signed int 2 byte −32,768 to 32,767
unsigned int 2 byte 0 to 65,535
short int 2 byte −32,768 to 32,767
signed short int 2 byte −32,768 to 32,767
unsigned short int 2 byte 0 to 65,535
long int 4 byte -2,147,483,648 to 2,147,483,647
signed long int 4 byte -2,147,483,648 to 2,147,483,647
unsigned long int 4 byte 0 to 4,294,967,295
float 4 byte 1E–37 to 1E+37 with six digits of precision
double 8 byte 1E–37 to 1E+37 with ten digits of precision
long double 10 byte 1E–37 to 1E+37 with ten digits of precision