#include<stdio.h> double i; int main() { (int)(float)(char) i; printf("%d", sizeof((int)(float)(char)i)); return 0; }
Выше приведены 4 на компиляторе Micrsoft. Почему?
sizeof - размер переменной в байтах. В этом случае i преобразуется в int, что составляет 4 байта.
sizeof
i
int
Это размеры типов на MS C ++: http://msdn.microsoft.com/en-us/library/cc953fe1(v=vs.71).aspx
Последней операцией приведения является int, поэтому вы получите sizeOf (int).Целочисленный размер отличается от компилятора формы другим, некоторые возвращают 2 байта, а другие возвращают 4 байта.
sizeof что-то говорит вам, сколько байтов занимает в памяти. Ваша платформа и набор инструментов явно имеют 32-битные целые числа; он говорит вам, что int в вашей цепочке инструментов (компилятор) занимает 4 байта.