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
- Konwersje niejawne
- Rzutowania jawne
- Konwersje liczb całkowitych i zmiennoprzecinkowych
- Pułapki konwersji