Глава 10. Написание выражений 241
Операция sizeof
Операция sizeof возвращает количество байт, занимаемых в памяти типом данных или выражением, передаваемыми операции в качестве параметра. Если передается выражение, то оно не вычисляется. Операция sizeof обычно используется для определения необходимого объема памяти при размещении переменной операцией new. Также она бывает необходима для определения числа элементов массива при обработке в цикле.
Размеры некоторых типов машинно-зависимы; они также могут зависеть от используемой модели памяти.
Листинг 10.11 показывает) применение операции sizeof к разным типам данных. Программа скомпилирована как Win32.
^include <iostrearn.h> void main()
cout « " Результаты различных случаев применения ^>опера1!яи sizeof.Vn";
cout « " char: " « sizeof(char) « endl;
cout « " chars: " « sizeof(chars) « endl;
cout. « " char*: " « sizeof(char*) « endl;
cout « " wchar_t: " « sizeof(wchar_t) « endl;
cout « " bool: " « sizeof(bool) « endl;
cout « " short: " « sizeof(short) « endl;
cout « " int: " « sizeof(int) « endl;
cout « " long: " « sizeof(long) « endl;
cout « " float: " « sizeof(float) « endl;
cout « " double: " « sizeof(double) «endl;
cout « " long double: " « sizeof(long double) « endl;
enum DIGIT ( ZERO, ONE, TWO, THREE, FOUR, FIVE, SIX, SEVEN, EIGHT, ^NINE );
cout « " DIGIT: " « sizeof(DIGIT) « " Member: " « sizeof(ZERO) cl>« endl;
char ca[10j ;
cout « " char[10]: " « sizeof(ca) « " элементов: " Ч>« sizeof(ca)/sizeof(ca[0]) « endl;
double da[10i; , cout « " double[10]: " « sizeof(da) « " элементов: " 1>« sizeof(da)/sizeof(da[0]) « endl;
struct cd { char c;
double d;