C++指针与数组

来源:百度知道 编辑:UC知道 时间:2024/06/16 23:40:40
int a[10][5];
for(i=0;i<10;i++)
for(int j=0;j<5;j++)
a[i][j]=j;
int **p;
p=(int**)a;//为什么正确
int **p=a//为什么不行??

p=(int**)a; 这么写是C风格的强制类型转换,理论上转成什么都能通过编译的;
int **p=a;这么写是隐式类型转换,需要转型合法才能通过编译;

数组名代表首地址,a 地址 == a[0][0] 地址 ,p 定义为二级指针,也就是指针的指针.