Type Conversion or Type Casting is one the important concept in C programming, it converts one data type to another. It can also be called data conversion. The compiler automatically changes the data type.
In C programming, typecasting operation is of two types:
- Implicit type casting
- Explicit type casting
Implicit type casting:
Implicit type casting means the conversion of data types without losing its original meaning. The data type is automatically changed. Implicit type casting is essential when users want to change the data types without losing its value stored in a variable.
Example of implicit type casting in C programming:
1 2 3 4 5 6 7 8 9 10 11 12 | #include <stdio.h> int main() { char x = 'k'; //ASCII value of k is 107 int y; y = x; //implicit type casting printf("Printing character K: %c\n", x); printf("Printing K ASCII value as integer: %d\n", y); } |
The output if implicit type casting.
1 2 | Printing character K: k Printing K ASCII value as integer: 107 |
Explicit type casting:
As we understood that implicit type conversion is automatic but in some cases, the programmer might need to force the compiler to change the data type. Posing the data type of the expression of a specific type is called Explicit type casting.
The general syntax for type casting operations is:
1 | <strong><em>(type-name) expression</em></strong>; |
Here,
The type-name
is the standard ‘C’ language data type.
And an expression
can be a constant, a variable, or an actual expression.
Example of Explicit type casting in C programming:
1 2 3 4 5 6 7 8 9 10 11 12 13 | #include <stdio.h> int main() { float f = 94.7; int a = (int) f + 10; printf("The Value of f is %f\n", f); printf("The Value of a is %d\n", a); return 0; } |
The output if Explicit type casting.
1 2 | The Value of f is 94.699997 The Value of a is 104 |
Keep in mind the following rules for programming practice when dealing with different data type to prevent from data loss :
- Integer types should be converted to float.
- Float types should be converted to double.
- Character types should be converted to an integer.