使用sizeof计算内存空间

来源:互联网 发布:淘宝联盟的返利 编辑:程序博客网 时间:2024/06/05 15:42

在下面代码中,假设在32位系统下,各sizeof计算的结果分别是多少?

int *p = NULL;

int a[100];

int b[100];

void fun(int b[100])

{

       sizeof(b);

}

char (*pArray1)[4]={0};
char (*pArray2[10])[4]={0};
char (*pArray3[100])[4]={0};

求 sizeof(p)=?, sizeof(*p)=?, sizeof(a)=?, sizeof(a[100])=? (你是不是会认为a[100]出出错?想一想为什么?)

sizeof(&a)=?, sizeof(&a[0])=?, sizeof(b)=?

sizof(pArrya1)=?,sizof(pArrya2)=?,sizof(pArrya3)=?


先自己思考哦,然后再看答案吧!

#include "stdafx.h"#include <iostream>using namespace std;int b[100];int fun(int b[100]){int i = sizeof(b);return i;}int _tmain(int argc, _TCHAR* argv[]){int *p = NULL;int a[100];cout<<"sizeof(p)= "<<sizeof(p)<<endl;cout<<"sizeof(*p)= "<<sizeof(*p)<<endl;cout<<"sizeof(a[100])= "<<sizeof(a[100])<<endl;cout<<"sizeof(a)= "<<sizeof(a)<<endl;cout<<"sizeof(&a)= "<<sizeof(&a)<<endl;cout<<"sizeof(&a[0])= "<<sizeof(&a[0])<<endl;cout<<"sizeof(b)= "<<sizeof(fun(b))<<endl;char (*pArray1)[4]={0};char (*pArray2[10])[4]={0};char (*pArray3[100])[4]={0};cout<<"sizof(pArrya1)= "<<sizeof(pArray1)<<endl;cout<<"sizof(pArrya2)= "<<sizeof(pArray2)<<endl;cout<<"sizof(pArrya3)= "<<sizeof(pArray3)<<endl;return 0;}

// 揭晓答案的时候了哦!看看运行结果,然后再思考思考:



原创粉丝点击