在下面代码中,假设在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;