#i nclude "stdafx.h"
#i nclude <iostream>
#i nclude "string"
using namespace std;
class A
{
};
class B
{
int a;
static int c;
};
struct Strcut1
{
int a;
int* c;
};
int main(int argc, char* argv[])
{
int Array[]={1,2,3};
int *pInt;
//class
cout<<" class:/n"<<sizeof(A)<<endl;//空类也有一个位置
cout<<sizeof(B)<<endl;//static 不占类位置
//int
pInt=Array;
cout<<" Int:/n"<<sizeof(Array)<<endl;//它与字符数组有区别,不会多一位'/0'
cout<<sizeof(pInt)<<endl; //指针
// string
string str("foobar");
string *ps=&str;
cout<<" string:/n"<<sizeof(str)<<endl;//元素本身大小,与字符cbar不同
cout<<sizeof(*ps)<<endl;//引用,与原类型一样大
cout<<sizeof(ps)<<endl;//指针
//char
char ch[]="Hello world";
char *pCh="Hello world";
cout<<" char:/n"<<sizeof(ch)<<endl;//注意这里加一个位'/0'
cout<<sizeof(pCh)<<endl;//指针
cout<<sizeof(*pCh)<<endl;//一个元素,位置为1
cout<<strlen(ch)<<endl;//没有统计'/0'
cout<<strlen(pCh)<<endl;//与上面一样大
//type
cout<<" Type:/nShort*="<<sizeof(short*)<<endl;//指针
cout<<"Short&="<<sizeof(short&)<<endl;//引用
cout<<"Int*="<<sizeof(int*)<<endl;//指针
cout<<"intt&="<<sizeof(int&)<<endl;//引用
return 0;
}
MyStruct k;
printf("%d %d %d %d %d",sizeof(p),sizeof(q),sizeof(m),sizeof(n),sizeof(k));
答案:4,80,1600,4,24