int arr[2][3]={{1,2,3}.{4,5,6}};
cout<<"二维数组占用内存空间为:"<<sizeof(arr)<<endl;
cout<<"二维数组第一行占用内存空间为:"<<sizeof(arr[0])<<endl;
cout<<"二维数组第一个元素占用内存空间为:"<<sizeof(arr[0][0])<<endl;
cout<<"二维数组的行数为:"<<sizeof(arr)/sizeof(arr[0])<<endl;
cout<<"二维数组的列数为:"<<sizeof(arr[0])/sizeof(arr[0][0])<<endl;
cout<<"二维数组的首地址为:"<<(int)arr<<endl;
cout<<"二维数组第一行的首地址为:"<<(int)arr[0]<<endl;
cout<<"二维数组第二行的首地址为:"<<(int)arr[1]<<endl;
cout<<"二维数组第一个元素的首地址为:"<<(int)&arr[0][0]<<endl;
cout<<"sizeof(int *)="<<sizeof(int *)<<endl;
cout<<"sizeof(float*)="<<sizeof(float*)<<endl;
cout<<"sizeof(double*)="<<sizeof(double*)<<endl;
cout<<"sizeof(char*)="<<sizeof(char*)<<endl;
输出结果均为4(32位)/8(64位)
空指针指向的内存不可以访问即:
int main()
{
int *p=NULL;
*p=100;//报错
cout<<*p<<endl;//访问空指针报错
return 0;
}
野指针:指针变量指向非法的内存空间
int main()
{
int *p=(int *)0x1100;
cout<<*p<<endl;
return 0;
}