Rzutowanie typu w języku C

Rzutowanie typu jest sposobem na konwersję zmiennej z jednego typu danych do innego typu danych. Na przykład, jeśli chcesz przechowywać długą wartość w prostej liczbie całkowitej, możesz przekształcić typecast long na int. Możesz konwertować wartości z jednego typu na drugi jawnie używając operatora rzutowania. Istnieją dwa typy rzutowania typu w języku c, które są konwersjami implicite i konwersjami explicite. W tym artykule dowiemy się również o różnicy między rzutowaniem typu a konwersją typu.

Nowy typ danych powinien być wymieniony przed nazwą zmiennej lub wartości w nawiasach, która ma być rzutowana.

Przykładowy program rzutowania typu C:

W poniższym programie C, 7/5 samo w sobie da wartość całkowitą jako 1.
Więc rzutowanie typu jest wykonywane przed podziałem, aby zachować wartość float (1.4).

1 #include <stdio.h>
2 int main ()
3 {
4 float x;
5 x = (float) 7/5;
6 printf(„%f”,x);
7 }

Wyjście:
1.400000

Konwersja wyrażenia danego typu na inny typ jest znana jako rzutowanie typu. rzutowanie typu jest bardziej użyteczne w programowaniu w języku c.

W tym przypadku najlepszą praktyką jest konwersja niższego typu danych na wyższy typ danych, aby uniknąć utraty danych.

Dane zostaną obcięte, gdy wyższy typ danych zostanie przekonwertowany na niższy. Na przykład, jeśli float zostanie przekonwertowany na int, dane, które są obecne po kropce dziesiętnej, zostaną utracone.

Istnieją dwa typy rzutowania typów w języku c.

Typy rzutowania typów w języku C

.

S.No Types of type casting in C Programming
1 Implicit Conversion
2 Eksplicite Conversion

Implicit conversion

Implicit conversions nie wymagają żadnego operatora dla konwertowanych. Są one wykonywane automatycznie, gdy wartość jest kopiowana do zgodnego typu w programie.

Tutaj wartość a została awansowana z int do double i nie musieliśmy określać żadnego operatora rzutowania typu. Jest to znane jako konwersja standardowa.

Przykład :-

1 #include<stdio.h>
2 #include<conio.h>
3 void main()
4 {
5 int i=20;
6 double p;
7 clrscr();
8
9 p=i; // konwersja implicite
10
11 printf(„wartość implicite to %d”,p);
12
13 getch();
14 }

Output:-
implicit value is 20.

Konwersja jawna

W języku C wiele konwersji, zwłaszcza tych, które implikują inną interpretację wartości, wymaga konwersji jawnej. Widzieliśmy już dwie notacje dla jawnej konwersji typu.

Nie są one wykonywane automatycznie, gdy wartość jest kopiowana do zgodnego typu w programie.

Przykład :-

1 #include<stdio.h>
2 #include<conio.h>
3 void main()
4 {
5 int i=20;
6 short p;
7 clrscr();
8
9 p = (short) i; // Konwersja jawna
10
11 printf(„Wartość jawna to %d”,p);
12
13 getch();
14 }

Output:-
Wartość jawna to 20.

Usual Arithmetic Conversion

Zwykłe konwersje arytmetyczne są niejawnie wykonywane w celu obsadzenia ich wartości we wspólnym typie, C używa zasady, że we wszystkich wyrażeniach z wyjątkiem przypisania, wszelkie niejawne konwersje typu wykonane z typu o niższym rozmiarze do typu o wyższym rozmiarze, jak pokazano poniżej:

Type Casting In C Language

Wbudowane funkcje rzutowania typów w języku C:

W języku C dostępnych jest wiele wbudowanych funkcji rzutowania typów, które wykonują konwersję typu danych z jednego typu na inny.

.

S.No Typecast Function Description
1 atof() Convert string to Float
2 atoi() Konwersja łańcucha do int
3 atol() Konwersja łańcucha do long
4 itoa() Konwersja int do string
5 ltoa() Konwersja long to string

Ostatnio przeprowadzamy ankietę wśród różnych programistów, którzy są dostępni w mediach społecznościowych google plus. Przeprowadziliśmy ankietę dotyczącą rzutowania typów w języku c.

Różnica między rzutowaniem typów a konwersją typów

Gdy istnieje potrzeba konwersji jednego typu danych na inny, dwa terminy przychodzą nam do głowy „rzutowanie typów” i „konwersja typów”. Kiedy dwa typy są ze sobą zgodne, wtedy konwersja jednego typu na drugi jest wykonywana automatycznie przez kompilator, który jest zimną konwersją typu, ale pamięta, że możemy przechowywać duży typ danych w innym typie, na przykład nie możemy przechowywać float w int, ponieważ float jest większy niż int. natomiast typecasting musi być wyraźnie wykonany przez programistę.

BASIS FOR COMPARISON TYPE CASTING TYPE CONVERSION
Definicja Gdy użytkownik może przekonwertować jeden typ danych na inny wtedy jest to nazywane typecasting. Konwersja typu jest tym, co automatycznie konwertuje jeden typ danych na inny.
Implemented Implemented Implemented on two 'incompatible’ data types. Implemented only when two data types are 'compatible’.
Operator Do rzutowania typu danych na inny wymagany jest operator rzutowania '()’. Nie jest wymagany operator.
Implemented Jest to wykonywane podczas projektowania programu. Jest wykonywana jawnie podczas kompilacji.
Typ konwersji Konwersja zawężająca. Konwersja rozszerzająca.
Przykład int x;
byte y;


y= (byte) x;
int x=3;
float y;
y=a; // wartość w y=3.000.

.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.