C Academy · Lektion

Implicitte konverteringer

Automatiske promoveringer

Lektion 1 af 413 trin

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
Gratis at komme i gang

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

  1. Implicitte konverteringer
  2. Eksplicitte casts
  3. Konvertering mellem heltal og float
  4. Konverteringsfaldgruber
← Tilbage til C Academy