Latest web development tutorials

odlewy C

Rzuca zmienna jest przekształcana z jednego typu na inny typ danych. Na przykład, jeśli chcesz, aby zapisać wartość typu long do prostego całkowitej, musisz typu long cast z typem int. Można użyćoperatora cast jawnie umieścić wartości z jednego typu na inny typ, co następuje:

(type_name) expression

Rozważmy następujące przykłady użycia obowiązkowego operatora konwersji do zmiennej całkowitej przez inną zmienną całkowitą, dostać float:

#include <stdio.h>

main()
{
   int sum = 17, count = 5;
   double mean;

   mean = (double) sum / count;
   printf("Value of mean : %f\n", mean );

}

Gdy powyższy kod jest kompilowany i wykonany, że daje następujące wyniki:

Value of mean : 3.400000

Zauważyć tutaj jest operatorem obsada ma pierwszeństwo przed podziałem, więc wartośćsumy najpierw przekształca się podwójnie,a następnie podzielić liczyć, uzyskać wartość typu podwójnej.

Konwersje typów może być dorozumiane, wykonywane automatycznie przez kompilator, może być wyraźne, określona za pomocąoperatora z elementami plastikowymi.W programowaniu, istnieje potrzeba, aby spędzić operatora cast typ konwersji czasu, jest to dobra praktyka programowania.

Integral promocji

Odnosi się do integralnej promocji jest mniejsza niżint lub unsigned intcałkowitą typu jest konwertowany naintlubunsigned intprocesu. Rozważmy następujący przykład, dodać znak w int:

#include <stdio.h>

main()
{
   int  i = 17;
   char c = 'c'; /* ascii 值是 99 */
   int sum;

   sum = i + c;
   printf("Value of sum : %d\n", sum );

}

Gdy powyższy kod jest kompilowany i wykonany, że daje następujące wyniki:

Value of sum : 116

Tutaj suma wartości 116, ponieważ kompilator jest integralną promocji podczas przeprowadzania rzeczywistego funkcjonowania Ponadto, "c" stosunek przekształcono w odpowiedni ASCII.

Zwykłe konwersje arytmetyczne

Zwykłe arytmetyczne konwersje są niejawnie oddanych do wartości tego samego typu.Kompilator najpierw wykonujecałkowitą podnoszenia, gdy operandy różnych rodzajów, są przekształcane w poniższej hierarchii pojawia najwyższy poziom Typ:

Zwykła arytmetyka Conversion

Zwykłe arytmetyczne konwersje nie mają zastosowania do operatora przypisania, operatory logiczne && i ||. Spójrzmy na poniższych przykładach, aby zrozumieć tę koncepcję:

#include <stdio.h>

main()
{
   int  i = 17;
   char c = 'c'; /* ascii 值是 99 */
   float sum;

   sum = i + c;
   printf("Value of sum : %f\n", sum );

}

Gdy powyższy kod jest kompilowany i wykonany, że daje następujące wyniki:

Value of sum : 116.000000

Tutaj c przekształca się najpierw do liczby całkowitej, ale ze względu na ostatniej wartości jest typ double, więc zwykłe arytmetyczne konwersje są stosowane, kompilator i i c przekształca się unosić i umieścić je razem, aby uzyskać liczbę zmiennoprzecinkową ,