C - Data Types in C Programming

A data type defines a set of values that a variable can store along with a set of operations that can be performed on that variable. Each and every variable that we are using in our program must be declared before its use. The reason behind it is that, each and every variable must be placed in some memory location.

A data type defines a set of values that a variable can store along with a set of operations that can be performed on that variable.

Each and every variable that we are using in our program must be declared before its use. The reason behind it is that, each and every variable must be placed in some memory location.


For example, if we are declaring variables as int a, b; then memory location is reserved at compile time for two variables a and b as integers. There are two type of data;
  1. Fundamental or basic data types
  2. Derived data types
some examples of derived data types are : array, structure, union etc. 

Fundamental Data Types

The fundamental data types are the built in data types in C. They are char, int, float and double. These are also called basic data types.

C also provides more data types which are extended from these basic data types by adding different qualifiers. The basic data types can be augmented by the use of the data type qualifiers short, long, signed and unsigned to create extended data type.

We can also create derived data types, such as Array, Structure etc. All the derived data types in C are based upon one of the fundamental (basic) data types. The basic data types, their memory requirements and the range are given in following table. 
Data Type
Memory Requirement
Range
Char
1 byte
0 to 255
Int
2 byte in 16 bit system
4 byte in 32 bit system
-32768 to 32767
-2147483648 to 2147483647
Float
4 bytes
-3.4e38 to -3.4e-38 up to 0 and 3.4e-38 to 3.4e38
Double
8 bytes
-1.7e308 to -1.7e-308 up to 0 and 1.7e-308 to 1.7e308

Character Data Type

This type of data can hold single character and are placed between single quotes ( '   ' ). It occupies 1 byte space in memory and can be used as char, signed char and unsigned char.

In C, char and int are compatible to each other, so a variable of char type can be used to hold integer value of 1 byte, that is char are also integers but they can hold only 1 byte. The format specifier for character data type is %c. 
char one='a';
char two='b';
printf("%c %c",first, second);
actually characters are stored as numbers in memory. There is a standard rule which is used to represent characters as numbers.

That is, each character is given some specific numeric code. C uses ASCII ( American Standard Code for Information Interchange) coding scheme to specify for each character. Some of the characters and their ASCII codes are given below; 
A = 65 to Z=90;
a=97 to z=122;
0=48 to 9=57;
space = 32, & =38 etc. 
the memory requirement and the range of character data type is given in following table. 
Data Type
Memory Requirement
Range
Char
1 byte
0 to 255 or -128 to 127
Unsigned char
1 byte
0 to 255
Signed char
1 byte
-128 to 127

Integral Data Type

This type of data can hold numeric values without fractional parts. The size of int data type depends on Operating System.

If the OS of 16 bit like MS-DOS or any other, then it occupies 2 bytes space memory. If the OS is of 32 bit like Windows 95\98\XP, UNIX etc, then int occupies 4 bytes in memory and it may be used as int or (singed int), unsigned (unsigned int) etc.

The format specifiers for int is %d, in signed is %u, short is %hd, unsigned short is %hu, long is %ld and unsigned long is %lu. 
Data Type
Memory Used
Range
Int
2 byte for 16 bit system
4 byte for 32 bit system
-32768 to 32767
-2147483648 to 2147483647
Unsigned
2 byte for 16 bit system
4 byte for 32 bit system
0 to 65535
0 to 4294967297
Short
2 byte
-32768 to 32767
Unsigned short
2 byte
0 to 65535
Long
4 byte
-2147483648 to 2147483647
Unsigned long
4 byte
0 to 4294967297

Floating Point Data Type

This type of data can hold integral part and fractional part as its value. The first of such data type, float, occupies 4 bytes in memory and the range may be between +-3.4c3+-38. Its format specifier is %f, %e and %g.

With %f and %e format specifier 6 digits are displayed after fractional point by default. However, with %g format specifier as a whole 6 digits including integer part are displayed by default. 
Data Type
Memory Used
Range
Float
4 bytes
-3.4e38 to -3.4e-38 up to 0 and
3.4e-38 to 3.4e38
Double
8 bytes
-1.7e308 to -1.7e-308 up to 0 and
1.7e-308 to 1.7e308
Long double
10 bytes
-1.7e4932 to -1.7e-3932 up to 0 and
-1.7e-4932 to 1.7e4932

You May Also Like...

Socialize with Us