Kaster Profile
Casts
Når antallet af forskellige typer operationer, og ikke hører til de grundlæggende datatyper, ofte nødt til at kaste operander i den type behov. Afstøbninger har to former, kaldet eksplicitte og implicitte afstøbninger kaster. Kaster ikke ændre typen af de oprindelige data.
Fælles C kaster funktioner er: const_cast, static_cast, reinterpreter_cast og dynamic_cast.Kaster måde
En eksplicit casts
C udtrykkeligt kaster en meget enkel format er som følger:
TYPE b = (type) a;
Hvilket, TYPE er den type af deskriptorer, såsom int, float, etc. Efter de støbte Operatører, returnerer en værdi af typen TYPE med denne cast operation ændrer ikke operand selv, efter at operander selv har ikke ændret sig, for eksempel:
int n = 0xab65;
char cChar = (char) n;
Disse resultater stemmer er heltalsværdien 0xab65 høje byte slette indholdet i den lave ende af en byte som en char typen værdi tildelt variablen cChar, men efter typen konvertering værdi nVar ikke ændret sig.
I C kaster funktion har fire: const_cast (bruges til at fjerne const attribut), static_cast (for støbte grundlæggende typer), dynamic_cast (konverteringstype mellem polymorfe typer, der bruges), reinterpreter_cast (for forskellige typer af Konvertering mellem pejlemærker blandt de mest almindeligt anvendte er omdannelse funktion pointer mellem forskellige typer).
2, implicitte casts
Implicit typekonvertering forekommer i opgaven udtryk og har en returværdi af funktionskaldet udtryk. I opgaven udtryk, hvis opgaven operatør operanddata typer forskellige venstre og højre side af opgaven operatør vil kaste den højre operand typen numerisk tegn efter den venstre side af opgaven, opgaven operatør tildelt til venstre for variablerne. Når funktionen kaldes, hvis den type og funktion returværdierne tilbage returnere udtryk for forskellige typer, så afkastet værdi, når værdien af udtrykket vil vende tilbage støbt funktion returværditype, så værdien returneres, såsom:
int nVar;
dobbelt DVARIANS = 3,88;
nVar = DVARIANS ;/ / efter fuldbyrdelsen af dommen, nVar er 3, og værdien er stadig 3,88 DVARIANS
Type konvertering:
En automatisk typekonvertering
2 casts
Automatisk typekonvertering af to situationer: 1, forskellige typer af data operationer, vil systemet automatisk lavere prioritet operation i et højt niveau, højt niveau samt den aritmetiske datatyper. 2, på begge sider af opgaven operatør er ikke den samme type, vil systemet automatisk konvertere til den rigtige variabel typeudtryk type på venstre side, og derefter opgaven
Afstøbninger:
Såsom: (int) 3.1415 / / er et heltal del
(Int) a% 10 / / få et enkelt ciffer
Hvis A er en int typen, tage en kvadratroden er sqrt ((dobbelt) a).
3, implicitte automatisk typekonvertering:
Automatisk C implicit datatype konvertering regler interne sprog compiler system giver som følger:
1, når du udfører aritmetiske operationer, kan lav type (korte bytes) konverteres til en høj type (lang bytes) eksempel: int typen omdannes til en dobbelt, char konverteret til en int typen, og så videre;
2 opgave udtryk, er den type af værdien af den højre side af udtrykket konverteres automatisk til den type implicit venstre variabler og tildele det;
|