Typecasting în C | C++ / descoperi diferența dintre typecasting & conversie de tip

Typecasting este o caracteristică importantă a C / C++ programare care oferă programatorului dispoziția de a converti un tip de date într-un alt tip. Începătorii înțeleg greșit că termenii conversii de tip și typecasting în C / C++pot fi folosiți în mod interschimbabil, nu este cazul. Vom discuta diferențele lor cheie pentru a ne păstra conceptele clare.

rămâneți la curent cu ultimele tendințe tehnologice
Alăturați-vă DataFlair pe telegramă!!

Typecasting în C/C++

Typecasting este o modalitate de a converti un anumit tip de date de o variabilă la un alt tip de date în C / C++. Se dovedește a fi destul de util atunci când vine vorba de gestionarea memoriei. Să presupunem că dorim să stocăm o valoare de tip de date int într-o variabilă de tip de date long, putem realiza această sarcină prin typecasting int la long. Și vestea bună este că este la fel de ușor pe cât pare.

sintaxa

int number1;
float number2;

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

Conversia de tip în C și C++

conversia de tip este un concept în care un tip de date este convertit automat într-un alt tip fără implicarea programatorului. Se face exclusiv de compilator numai dacă ambele tipuri de date sunt compatibile între ele.

sintaxa

int number1 = 5;
float number2;
Number2 = a; / / valoarea number2 ar fi 5.000

ia o pauză pentru un timp și de a explora variabile în C

conversie de tip vs Typecasting

adesea, oamenii tind să folosească termenii typecasting și conversii de tip interschimbabil ori de câte ori vorbim despre conversia unui tip de date la altul, cum ar fi, de la int la char.

este important să rețineți următoarele diferențe cheie:

  1. Typecasting se referă la conversia unui tip de date în altul de către utilizator, în timp ce conversia de tip se referă la conversia automată a unui tip de date în altul.
  2. folosim în general typecasting atunci când ambele tipuri de date sunt incompatibile între ele. În timp ce în conversia de tip, este obligatoriu ca ambele tipuri de date să fie compatibile între ele.
  3. avem nevoie de operatorul de turnare „()” pentru typecasting în C / C++, întrucât nu avem nevoie de nici un astfel de operator în cazul conversiei de tip.
  4. de obicei, facem turnarea de tip în timp ce scriem programul, în timp ce facem conversia de tip, de obicei, în timpul compilării.

tipuri de conversii de tip în C/C++

în limbajul de programare C/C++, conversiile de tip sunt de două tipuri, și anume:

4.1 conversie implicită de tip

este automat în natură, deoarece compilatorul însuși convertește variabila de la un tip la altul fără angajarea oricărei alte funcții. Prin urmare, nu avem nevoie de niciun operator.

este important să înțelegeți regulile asociate conversiilor de tip implicite. Acestea sunt:

  • tipurile de date mai mici sunt convertite în tipuri de date mai mari pentru a evita pierderea de date.
  • când se efectuează operația dintre tipul de date Int și float, valoarea rezultată ar fi de tip plutitor.

nu uitați să verificați cum funcționează operatorii din C!

de exemplu, luați în considerare următorul segment de cod:

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

acum, să înțelegem cum funcționează acest lucru:

în conversia implicită de tip, „x” din a / x este convertit automat în tipul de date mai mare, adică tipul de date float. Acest lucru se întâmplă pentru a face „x” egal cu „a” în ceea ce privește tipul său de date.

prin urmare, valoarea lui x = 4.0 și expresia a / x ar fi 14.4 / 4.0 = 3.6

  • În mod similar, atunci când se efectuează operația dintre char/short și int, valoarea rezultată ar fi de tip întreg, deoarece tipul de date mai mare aici este int.

rețineți că valoarea tipului de date char va fi tratată ca valoare ASCII, nu ca tip de caracter original atunci când se efectuează o operație între tipul de date char și int.

de exemplu, luați în considerare următorul segment de cod:

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

acum, să înțelegem cum funcționează:

știm că valoarea ASCII a caracterului minuscul ‘z’ este 122. Prin urmare, compilatorul convertește automat caracterul de tip de date char în tipul de date întreg și expresia suma = caracter + numărul devine egal cu 122 + 8 = 130
Prin urmare, ieșirea ar fi 130.

Din această discuție, este destul de clar că tipul de date inferior este convertit într-un tip de date superior.

următoarea diagramă ilustrează clasarea unui tip de date inferior la un tip de date superior:

conversie implicită de tip C și C++

4.2 conversie explicită de tip

se face de către programator în funcție de propria sa comoditate cu ajutorul operatorului turnat.

key takeaway: noul tip de date trebuie menționat în mod clar fie înainte de identificator, fie de valoarea din paranteze care urmează să fie typecasted.

exemplu de typecasting în C

aici este un program care ilustrează utilizarea typecasting în limba 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;}

cod pe ecran-

exemplu de typecasting în C

ieșire-

ieșire de typecasting în C

exemplu de typecasting în C++

aici este un program în C++ care ilustrează utilizarea 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;}

Cod-

exemplu de typecasting în C++

ieșire-

ieșire de typecasting

funcții typecasting încorporat în C/C++

există 5 tipuri de bază de funcții typecast încorporat în C/C++:

  1. atof(): îl folosim pentru a converti tipul de date string în tipul de date float.
  2. atoi (): îl folosim pentru a converti tipul de date string în tipul de date int.
  3. atol(): îl folosim pentru a converti tipul de date șir în tipul de date lung.
  4. itoa (): îl folosim pentru a converti tipul de date int în tipul de date string.
  5. ltoa (): îl folosim pentru a converti tipul de date lung în tipul de date șir.

rezumat

în acest tutorial, am discutat despre semnificația de bază a conversiei de tip și a typecasting-ului în C / C++, pe care majoritatea oamenilor tind să le amestece. Am înțeles că este posibil să convertim un tip de date în alt tip, făcându-l cu atât mai flexibil. Ulterior, am discutat despre ce este conversia de tip implicită și conversia de tip explicită. Am încheiat discuția noastră prin prezentarea generală a diferitelor tipuri de funcții de typecasting încorporate în C și C++.

dezvăluie diferența dintre structuri și uniuni în C

Lasă un răspuns

Adresa ta de email nu va fi publicată.