RUS Уроки по программированию на языке С (Оператор sizeof.)
Оператор sizeof.
В языке С существует специальная унарная операция sizeof, которая возвращает
размер своего операнда в байтах. Операндом операции sizeof может быть любое
выражение:
Результат операции sizeof имеет тип int.
Получение размера объекта.
#include <iostream>
using namespace std;
void main ()
{
int a;
char b;
unsigned c;
int *p;
/* ----------------------------- */
cout<<"sizeof(a)="<<sizeof(a)<<"\n";
cout<<"sizeof(b)="<<sizeof(b)<<"\n";
cout<<"sizeof(c)="<<sizeof(c)<<"\n";
cout<<"sizeof(p)="<<sizeof(p)<<"\n";
cout<<"sizeof(int)="<<sizeof(int)<<"\n";
cout<<"sizeof(int *)="<<sizeof(int *)<<"\n";
}
Результат работы программы:
sizeof(a)=4
sizeof(b)=1
sizeof(c)=4
sizeof(p)=4
sizeof(int)=4
sizeof(int *)=4
|
Размеры структуры.
Наверняка, вы предполагаете, что размер структуры равен сумме размеров ее
членов. Это не так. Вследствие выравнивания объектов разной длины в структуре
могут появляться безымянные "дыры". Так, например, если переменная типа char
занимает один байт, а int - четыре байта, то для структуры:
#include <iostream>
using namespace std;
struct Test
{
char c;
int i;
};
void main ()
{
Test d={'#',78};
cout<<sizeof(Test)<<" "<<sizeof(d)<<"\n\n";
}
|
может потребоваться восемь байт, а не пять. Правильное значение возвращает
операция sizeof.
|
Категория: C | Добавил: DEN-SHP (05.11.2012)
|
Просмотров: 761
| Рейтинг: 0.0/0 |
Добавлять комментарии могут только зарегистрированные пользователи.
[
Регистрация |
Вход ]