// type_cast.c
#include <stdio.h>
int main(void)
{
const int a = 2;
double b1, b2;
b1 = 1.0 / a; // aが自動的に(double)aとして処理される
b2 = 1.0 / (double)a;
printf("1.0 / a: %lf\n", b1
); // => "1.0 / a: 0.500000 printf("1.0 / (double)a: %lf\n", b2
); // => 1.0 / (double)a: 0.500000
b1 = 1 / a; // (1 / a)が自動的に(double)(1 / a)として処理される
b2 = 1 / (double)a; // (1)が自動的に(double)(1)として処理される
printf("1 / a: %lf\n", b1
); // => 1 / a: 0.000000 printf("1 / (double)a: %lf\n", b2
); // => 1 / (double)a: 0.500000
return 0;
}
Ly8gdHlwZV9jYXN0LmMKI2luY2x1ZGUgPHN0ZGlvLmg+CgppbnQgbWFpbih2b2lkKQp7CiAgICBjb25zdCBpbnQgYSA9IDI7CiAgICBkb3VibGUgYjEsIGIyOwoKICAgIGIxID0gMS4wIC8gYTsgIC8vIGHjgYzoh6rli5XnmoTjgasoZG91YmxlKWHjgajjgZfjgablh6bnkIbjgZXjgozjgosKICAgIGIyID0gMS4wIC8gKGRvdWJsZSlhOwoKICAgIHByaW50ZigiMS4wIC8gYTogJWxmXG4iLCBiMSk7ICAvLyA9PiAiMS4wIC8gYTogMC41MDAwMDAKICAgIHByaW50ZigiMS4wIC8gKGRvdWJsZSlhOiAlbGZcbiIsIGIyKTsgIC8vID0+IDEuMCAvIChkb3VibGUpYTogMC41MDAwMDAKCiAgICBiMSA9IDEgLyBhOyAgLy8gKDEgLyBhKeOBjOiHquWLleeahOOBqyhkb3VibGUpKDEgLyBhKeOBqOOBl+OBpuWHpueQhuOBleOCjOOCiwogICAgYjIgPSAxIC8gKGRvdWJsZSlhOyAgLy8gKDEp44GM6Ieq5YuV55qE44GrKGRvdWJsZSkoMSnjgajjgZfjgablh6bnkIbjgZXjgozjgosKCiAgICBwcmludGYoIjEgLyBhOiAlbGZcbiIsIGIxKTsgIC8vID0+IDEgLyBhOiAwLjAwMDAwMAogICAgcHJpbnRmKCIxIC8gKGRvdWJsZSlhOiAlbGZcbiIsIGIyKTsgIC8vID0+IDEgLyAoZG91YmxlKWE6IDAuNTAwMDAwCgogICAgcmV0dXJuIDA7Cn0=