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
- 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);
- 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);
- 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.