#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