Data Types in C
Each variable in C has an associated data type. It specifies the type of data that the variable can store like integer, character, floating, double, etc. Each data type requires different amounts of memory and has some specific operations which can be performed over it.
The data types in C can be classified as follows:
Primitive Data Types
Primitive data types are the most basic data types that are used for representing simple values such as integers, float, characters, etc.
eg. int, char, float, double, void
Derived Data type
The data types that are derived from the primitive or built-in datatypes are referred to as Derived Data Types.
eg. array, pointers, function
User Define Data Type
The user-defined data types are defined by the user himself.
eg. structure, union, enum
The following are some main primitive data types in C:
1. Integer Data Type
2. Character Data Type
3. Float Data Type
4. Duble Data Type
1. Integer Data Type
The integer datatype in C is used to store the integer numbers (any number including positive, negative and zero without decimal part). Octal values, hexadecimal values, and decimal values can be stored in int data type in C.
- Range: -2,147,483,648 to 2,147,483,647
- Size: 4 bytes
- Format Specifier: %d
Syntax of Integer
int var_name;
The integer data type can also be used as
- unsigned int: Unsigned int data type in C is used to store the data values from zero to positive numbers but it can’t store negative values like signed int.
- short int: It is lesser in size than the int by 2 bytes so can only store values from -32,768 to 32,767.
- long int: Larger version of the int datatype so can store values greater than int.
- unsigned short int: Similar in relationship with short int as unsigned int with int.
2. Character Data Type
Character data type allows its variable to store only a single character. The size of the character is 1 byte. It is the most basic data type in C. It stores a single character and requires a single byte of memory in almost all compilers.
- Range: (-128 to 127) or (0 to 255)
- Size: 1 byte
- Format Specifier: %c
Syntax of char
The char keyword is used to declare the variable of character type:
char var_name;
3. Float Data Type
In C programming float data type is used to store floating-point values. Float in C is used to store decimal and exponential values. It is used to store decimal numbers (numbers with floating point values) with single precision.
- Range: 1.2E-38 to 3.4E+38
- Size: 4 bytes
- Format Specifier: %f
Syntax of float
The float keyword is used to declare the variable as a floating point:
float var_name;
4. Double Data Type
A Duble Data type in C is used to store decimal numbers (numbers with floating point values) with double precision. It is used to define numeric values which hold numbers with decimal values in C.
The double data type is basically a precision sort of data type that is capable of holding 64 bits of decimal numbers or floating points. Since double has more precision as compared to that float then it is much more obvious that it occupies twice the memory occupied by the floating-point type. It can easily accommodate about 16 to 17 digits after or before a decimal point.
- Range: 1.7E-308 to 1.7E+308
- Size: 8 bytes
- Format Specifier: %lf
Syntax of Double
The variable can be declared as double precision floating point using the double keyword:
double var_name;
Void Data Type
The void data type in C is used to specify that no value is present. It does not provide a result value to its caller. It has no values and no operations. It is used to represent nothing. Void is used in multiple ways as function return type, function arguments as void, and pointer to void.
Size of Data Types in C
The size of the data types in C is dependent on the size of the architecture, so we cannot define the universal size of the data types. For that, the C language provides the sizeof() operator to check the size of the data types.
The size of int data type : 4
The size of char data type : 1
The size of float data type : 4
The size of double data type : 8