#include <iostream>
using namespace std;
void main()
{
char *p;
char *q[20];
char *m[20][20];
int (*n)[10];
struct MyStruct
{
char dda;
double dda1;
int type;
};
struct MyStruct k;
cout<<"sizeof(p)= "<<sizeof(p)<<endl;
cout<<"sizeof(q)= "<<sizeof(q)<<endl;
cout<<"sizeof(m)= "<<sizeof(m)<<endl;
cout<<"sizeof(n)= "<<sizeof(n)<<endl;
cout<<"sizeof(k)= "<<sizeof(k)<<endl;
cout<<"sizeof(char)= "<<sizeof(char)<<endl;
cout<<"sizeof(double)= "<<sizeof(double)<<endl;
cout<<"sizeof(int)= "<<sizeof(int)<<endl;
cout<<"sizeof(MyStruct)= "<<sizeof(MyStruct)<<endl;
}
结果输出如下:
对p而言:指针所占字节为 4。
q为一维的指针数组:每个指针占4个字节,20个占:4*20=80.
m为二维的指针数组:同上。80*20=1600.
n为指针。与q相同。
k:结构体对象,按照字节对齐,最大为double,占8字节。按照对齐原则,为24.
char、double、int各自的字节数分别为。1、8、4.
MyStruct结构体:同k。