0Pricing
C Academy · Lekcja

Konwersje niejawne

Automatyczne promocje

Konwersje niejawne to bezpłatna lekcja C Academy na CoddyKit. To lekcja 1 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej C Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs C Academy zawiera 4 lekcji w sumie.

Czym jest konwersja

Gdy C łączy wartości różnych typów, automatycznie konwertuje jeden typ na drugi. Jest to konwersja niejawna.

#include <stdio.h>
int main(void) {
    int i = 5;
    double d = i;
    printf("d = %.1f\n", d);
    return 0;
}

Promocja typów całkowitych

Małe typy całkowite, takie jak char i short, są przed wykonaniem działań arytmetycznych promowane do typu int.

#include <stdio.h>
int main(void) {
    char a = 10, b = 20;
    int sum = a + b;
    printf("sum = %d\n", sum);
    return 0;
}

Zwykłe konwersje arytmetyczne

W wyrażeniu mieszanym operand o węższym typie jest konwertowany do szerszego typu, aby przed wykonaniem działania oba operandy miały ten sam typ.

#include <stdio.h>
int main(void) {
    int i = 3;
    double d = 2.0;
    printf("%.1f\n", i + d);
    return 0;
}

Konwersja int do double

Przypisanie wartości int do double bezpiecznie poszerza jej typ, zachowując dokładną wartość.

#include <stdio.h>
int main(void) {
    int count = 7;
    double avg = count;
    printf("avg = %.1f\n", avg);
    return 0;
}

Konwersja double do int obcina część ułamkową

Przypisanie wartości double do int usuwa część ułamkową. Nie następuje zaokrąglenie.

#include <stdio.h>
int main(void) {
    double d = 9.99;
    int n = d;
    printf("n = %d\n", n);
    return 0;
}

char i int

char przechowuje małą liczbę całkowitą, czyli kod znaku. Naturalnie konwertuje się do int.

#include <stdio.h>
int main(void) {
    char c = 'A';
    int code = c;
    printf("code = %d\n", code);
    return 0;
}

Konwersje przy przypisywaniu

Prawa strona jest podczas przypisywania konwertowana do typu lewej strony.

#include <stdio.h>
int main(void) {
    double pi = 3;
    printf("pi = %.1f\n", pi);
    return 0;
}

Niespodzianka przy mieszanym dzieleniu

5 / 2 jest dzieleniem całkowitoliczbowym i daje wynik 2. Aby uzyskać dzielenie rzeczywiste, nadaj jednemu z operandów typ double.

#include <stdio.h>
int main(void) {
    printf("%.1f\n", 5 / 2.0);
    return 0;
}

Konwersje podobne do boolowskich

W warunkach każda wartość różna od zera jest konwertowana na true, a zero na false.

#include <stdio.h>
int main(void) {
    int x = 3;
    if (x)
        printf("nonzero is true\n");
    return 0;
}

Konwersja wartości zwracanej

Zwracana wartość jest konwertowana do typu zwracanego przez funkcję. Zwrócenie double z funkcji typu int obcina część ułamkową.

#include <stdio.h>
int half(int n) {
    return n / 2;
}
int main(void) {
    printf("%d\n", half(7));
    return 0;
}

Przekazywanie argumentów

Jeśli prototyp funkcji jest dostępny, argumenty są konwertowane do typu parametrów.

#include <stdio.h>
void show(double d) {
    printf("%.1f\n", d);
}
int main(void) {
    show(5);
    return 0;
}

Szybkie sprawdzenie

Sprawdź swoją wiedzę na temat konwersji niejawnych.

Podsumowanie: konwersje niejawne

Nauczyłeś się automatycznej konwersji typów.

  • C konwertuje operandy do wspólnego typu
  • Małe liczby całkowite są promowane do int
  • Konwersja int do double bezpiecznie poszerza typ
  • Konwersja double do int obcina część ułamkową
  • Dzielenie całkowitoliczbowe może zaskakiwać, jeśli żaden operand nie jest typu double

Często zadawane pytania

Czy lekcja „Konwersje niejawne” jest bezpłatna?

Tak — pełny tekst „Konwersje niejawne” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu C Academy, przejdź na CoddyKit PRO. Kurs C Academy zawiera 4 lekcji w sumie.

Co nauczysz się w „Konwersje niejawne”?

Automatyczne promocje Ćwiczysz C Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć C Academy?

Nie wymagamy żadnego doświadczenia. C Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 1 z 4.

Ile czasu zajmuje lekcja „Konwersje niejawne”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji C Academy?

Tak. Każda lekcja C Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. Konwersje niejawne
  2. Rzutowania jawne
  3. Konwersje liczb całkowitych i zmiennoprzecinkowych
  4. Pułapki konwersji
← Powrót do C Academy