在下面代码中,假设在32位系统下,各sizeof计算的结果分别是多少?
char *pArray0[5]={0}; //数组的元素是指针,指针指向的是char型的数据-- 指针数组,pArray0是数组名
char (*pArray1)[5]={0}; // 定义了一个指针pArray1,指向大小为5、元素为char型的数组, -- 数组指针
char (*pArray2[10])[5]={0};
char (*pArray3[100])[5]={0};
cout<<"sizof(pArrya0)= "<<sizeof(pArray0)<<endl;
cout<<"sizof(pArrya1)= "<<sizeof(pArray1)<<endl;
cout<<"sizof(pArrya2)= "<<sizeof(pArray2)<<endl;
cout<<"sizof(pArrya3)= "<<sizeof(pArray3)<<endl;
揭晓答案:
int k0 = sizeof(0);
int k1 = sizeof(0.0);
int k2 = sizeof('0');
int k3 = sizeof("0");
int k4 = sizeof(NULL); // define NULL 0
int k5 = sizeof(false);
char *k6 = (char *)malloc(0);
int *k7 = (int *)malloc(0);
cout<<"k0= "<<k0<<endl;
cout<<"k1= "<<k1<<endl;
cout<<"k2= "<<k2<<endl;
cout<<"k3= "<<k3<<endl;
cout<<"k4= "<<k4<<endl;
cout<<"k5= "<<k5<<endl;
cout<<"sizeof(k6)= "<<sizeof(k6)<<endl;
cout<<"sizeof(k7)= "<<sizeof(k7)<<endl;