Typecasting w C / C++ / Odkryj różnicę między Typecasting i konwersja typu

Typecasting jest istotną cechą programowania C/C++, która daje programiście przepis do konwersji jednego typu danych na inny typ. Początkujący często błędnie uważają, że pojęcia typu konwersje i typecasting w C/C++mogą być używane zamiennie, tak nie jest. Omówimy ich kluczowe różnice, aby nasze koncepcje były krystalicznie jasne.

Bądź na bieżąco z najnowszymi trendami technologicznymi
Dołącz do DataFlair na Telegramie!!

Typecasting w C/C++

Typecasting jest sposobem na konwersję określonego typu danych zmiennej na inny typ danych w C / C++. Okazuje się bardzo przydatny, jeśli chodzi o zarządzanie pamięcią. Załóżmy, że chcemy zapisać wartość typu danych int do zmiennej typu danych long, możemy osiągnąć to zadanie przez typecasting int do long. A dobrą wiadomością jest to, że jest tak proste, jak się wydaje.

składnia

int number1;
float number2;

// BODY
….
number2 = (float) number1;

Konwersja typów w C i C++

Konwersja typów jest pojęciem, w którym jeden typ danych jest automatycznie konwertowany na inny bez udziału programisty. Jest to wykonywane wyłącznie przez kompilator tylko wtedy, gdy oba typy danych są ze sobą kompatybilne.

składnia

int number1 = 5;
float number2;
Number2 = a; // wartość number2 będzie wynosić 5.000

zrób sobie przerwę na chwilę i zbadaj zmienne w C

Konwersja typów vs Typecasting

często ludzie używają terminów typecasting i konwersje typów zamiennie, gdy mówimy o konwersji jednego typu danych na inny, na przykład z int na char.

ważne jest, aby zwrócić uwagę na następujące kluczowe różnice:

  1. Typecasting odnosi się do konwersji jednego typu danych na inny przez użytkownika, podczas gdy konwersja typu odnosi się do automatycznej konwersji jednego typu danych na inny.
  2. Zwykle używamy typecasting, gdy oba typy danych są ze sobą niekompatybilne. Podczas konwersji typów obowiązkowe jest, aby oba typy danych były ze sobą kompatybilne.
  3. do typecastingu w C / C++ potrzebujemy operatora castingowego ” ()”, natomiast w przypadku konwersji typów nie potrzebujemy żadnego takiego operatora.
  4. Zwykle wykonujemy Typ casting podczas pisania programu, podczas gdy wykonujemy konwersję typów zwykle podczas kompilacji.

rodzaje konwersji typów w C/C++

w języku programowania C/C++, konwersje typów są dwóch typów, a mianowicie:

4.1 niejawna konwersja typów

ma charakter automatyczny, ponieważ kompilator sam konwertuje zmienną z jednego typu na drugi bez użycia żadnej innej funkcji. Dlatego nie wymagamy żadnego operatora.

ważne jest, aby zrozumieć reguły związane z niejawnymi konwersjami typów. Są to:

  • Mniejsze typy danych są konwertowane na większe typy danych, aby uniknąć utraty danych.
  • gdy wykonywana jest operacja pomiędzy typem danych int i float, wartość wynikowa będzie typu floating.

nie zapomnij sprawdzić jak działają operatory w C!

rozważmy na przykład następujący segment kodu:

int x =4;float a = 14.4, b;b = a / x;

teraz zrozummy, jak to działa:

przy konwersji typu niejawnego, „x” W A / x jest automatycznie konwertowany na większy typ danych, czyli typ danych float. Dzieje się tak, aby „x” było równe „a” pod względem typu danych.

zatem wartość x = 4.0 i wyrażenie a / x wynosiłoby 14.4/4.0 = 3.6

  • podobnie, gdy jest wykonywana operacja między char / short I int, wartość wynikowa byłaby typu integer, ponieważ większy typ danych to int.

zauważ, że wartość typu danych char będzie traktowana jako wartość ASCII, a nie jako oryginalny typ znaków, gdy zostanie wykonana operacja pomiędzy typem danych char i int.

rozważmy na przykład następujący segment kodu:

char character = 'z';int number = 8, sum;sum = character + number;

teraz zrozummy, jak to działa:

wiemy, że wartość ASCII małego znaku 'z’ wynosi 122. Dlatego kompilator automatycznie konwertuje charakter typu danych char na typ danych integer i wyrażenie sum = character + number staje się równe 122 + 8 = 130
w związku z tym wyjście będzie 130.

z tej dyskusji wynika, że niższy typ danych jest konwertowany na wyższy typ danych.

poniższy diagram ilustruje ranking niższego typu danych na wyższy:

Konwersja typów niejawnych C i C++

4.2 Jawna Konwersja typów

jest ona wykonywana przez programistę według jego własnej wygody przy pomocy operatora cast.

klucz: nowy typ danych powinien być wyraźnie wymieniony przed identyfikatorem lub wartością w nawiasach, które mają być wpisane.

przykład typecastingu w języku C

oto program, który ilustruje użycie typecastingu w języku C:

#include <stdio.h>int main (){printf("Welcome to DataFlair tutorials!\n\n");int sum = 21, count = 5;double average;average = (double) sum / count;printf("The average value is : %f\n", average );return 0;}

Kod na ekranie-

przykład typecastingu w C

Wyjście-

wyjście typecastingu w C

przykład typecasting w C++

oto program w C++, który ilustruje użycie typecasting:

#include <iostream>using namespace std;int main (){cout<<"Welcome to DataFlair tutorials!"<<endl<<endl;int sum = 21, count = 5;double average;average = (double) sum / count;cout<<"The average value is : "<< average <<endl;return 0;}

Code-

przykład typecasting w C++

output-

wyjście typecasting

wbudowane funkcje typecasting w C/C++

istnieje 5 podstawowych typów wbudowanych funkcji typecast w c/c++:

  1. atof(): używamy go do konwersji typu danych string do typu danych float.
  2. atoi(): używamy go do konwersji typu danych string na typ danych int.
  3. atol(): używamy go do konwersji typu danych string na typ danych long.
  4. itoa(): używamy go do konwersji typu danych int na typ danych string.
  5. ltoa(): używamy go do konwersji typu danych long na typ danych string.

podsumowanie

w tym samouczku omówiliśmy podstawowe znaczenie konwersji typów i typecastingu w C / C++, które większość ludzi ma tendencję do mieszania. Zrozumieliśmy, że możliwa jest konwersja jednego typu danych na inny, co czyni ją jeszcze bardziej elastyczną. Następnie omówiliśmy, czym jest konwersja typu implicit i konwersja typu explicit. Zakończyliśmy naszą dyskusję, przeglądając różne typy wbudowanych funkcji typecastingu w C i C++.

Odsłoń różnicę między strukturami a związkami w C

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.