Implicitte konverteringer
Automatiske promoveringer
Implicitte konverteringer er en gratis C Academy-lektion på CoddyKit. Dette er lektion 1 af 4. Du kan læse hele lektionen gratis nedenfor — og derefter øve dig praktisk i browseren med en indbygget kodeeditor og en AI-vejleder, der er tilgængelig døgnet rundt. Den er en del af læringsforløbet i C Academy, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. C Academy-kurset indeholder 4 lektioner i alt.
Hvad er en konvertering
Når C kombinerer værdier af forskellige typer, konverterer sproget automatisk den ene til den anden. Det kaldes en implicit konvertering.
#include <stdio.h>
int main(void) {
int i = 5;
double d = i;
printf("d = %.1f\n", d);
return 0;
}Heltalsforfremmelse
Små heltalstyper som char og short forfremmes til int før aritmetiske beregninger.
#include <stdio.h>
int main(void) {
char a = 10, b = 20;
int sum = a + b;
printf("sum = %d\n", sum);
return 0;
}Almindelige aritmetiske konverteringer
I et blandet udtryk konverteres den smallere operand til den bredere type, så begge matcher før operationen.
#include <stdio.h>
int main(void) {
int i = 3;
double d = 2.0;
printf("%.1f\n", i + d);
return 0;
}int til double
En int, der tildeles til en double, udvides sikkert, så den nøjagtige værdi bevares.
#include <stdio.h>
int main(void) {
int count = 7;
double avg = count;
printf("avg = %.1f\n", avg);
return 0;
}double til int afkorter
Når en double tildeles til en int, fjernes brøkdelen. Der foretages ingen afrunding.
#include <stdio.h>
int main(void) {
double d = 9.99;
int n = d;
printf("n = %d\n", n);
return 0;
}char og int
En char indeholder et lille heltal, nemlig tegnkoden. Den konverteres naturligt til int.
#include <stdio.h>
int main(void) {
char c = 'A';
int code = c;
printf("code = %d\n", code);
return 0;
}Konverteringer ved tildeling
Højresiden konverteres til typen på venstresiden under tildelingen.
#include <stdio.h>
int main(void) {
double pi = 3;
printf("pi = %.1f\n", pi);
return 0;
}Overraskelse ved blandet division
5 / 2 er heltalsdivision (2). Gør den ene operand til en double for at få reel division.
#include <stdio.h>
int main(void) {
printf("%.1f\n", 5 / 2.0);
return 0;
}Bool-lignende konverteringer
I betingelser konverteres alle værdier, der ikke er nul, til true, mens nul konverteres til false.
#include <stdio.h>
int main(void) {
int x = 3;
if (x)
printf("nonzero is true\n");
return 0;
}Konvertering af returværdi
En returneret værdi konverteres til funktionens returtype. Hvis du returnerer en double fra en int-funktion, afkortes den.
#include <stdio.h>
int half(int n) {
return n / 2;
}
int main(void) {
printf("%d\n", half(7));
return 0;
}Overførsel af argumenter
Argumenter konverteres til parameterens type, når en prototype er i scope.
#include <stdio.h>
void show(double d) {
printf("%.1f\n", d);
}
int main(void) {
show(5);
return 0;
}Hurtig kontrol
Test din forståelse af implicitte konverteringer.
Opsummering: Implicitte konverteringer
Du har lært om automatiske typekonverteringer.
- C konverterer operander til en fælles type
- Små heltal forfremmes til
int - int til double udvides sikkert
- double til int afkortes
- Heltalsdivision giver overraskelser, medmindre en operand er en double
Lær C med en AI-underviser — gratis
Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.
- Kurser
- 39
- Lektioner
- 144
Ofte stillede spørgsmål
Er lektionen “Implicitte konverteringer” gratis?
Ja — hele teksten til “Implicitte konverteringer” kan læses gratis her på nettet. Hvis du vil øve dig interaktivt med en indbygget kodeeditor og en AI-vejleder døgnet rundt og få adgang til resten af C Academy-kurset, skal du opgradere til CoddyKit PRO. C Academy-kurset indeholder 4 lektioner i alt.
Hvad lærer jeg i “Implicitte konverteringer”?
Automatiske promoveringer Du øver dig i C Academy med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.
Skal jeg have erfaring for at begynde på C Academy?
Der kræves ingen tidligere erfaring. C Academy på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 1 af 4.
Hvor lang tid tager lektionen “Implicitte konverteringer”?
De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.
Kan jeg skrive og køre kode i denne C Academy-lektion?
Ja. Alle C Academy-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.
Alle lektioner i dette kursus
- Implicitte konverteringer
- Eksplicitte casts
- Konvertering mellem heltal og float
- Konverteringsfaldgruber