キャスト(明示的な型変換)
#include <stdio.h>
int main() {
int n = 3;
double d;
d = (double)n;
double result;
result = d + n;
int result2;
result2 = (int)d + n;
printf("sizeof(n)=%d\n",sizeof(n));
printf("sizeof(d)=%d\n",sizeof(d));
printf("sizeof(result)=%d\n",sizeof(result));
printf("sizeof(result2)=%d\n",sizeof(result2));
printf("sizeof((int)d)=%d\n",sizeof((int)d));
}
実行結果
sizeof(n)=4
sizeof(d)=8
sizeof(result)=8
sizeof(result2)=4
sizeof((int)d)=4
ポインタ型へのキャスト
#include <stdio.h>
int main() {
char str[8] = "Hello";
char *p;
printf("%s\n",str);
p = (char*)str;
printf("%s\n",p);
p = &str[0];
printf("%s\n",p);
}
実行結果
Hello
Hello
Hello