假设数原型和变量说明如下:
void f4(int **p); int a[4]={1,2,3,4}; int b[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}}; int *q[3]={b[0],b[1],b[2]};
下面调用合法的是()
int b[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};int *q[3]={b[0],b[1],b[2]};针对于c选项,b[0],b[1],b[2]代表每行的指针,是指向每行的数组指针,他的类型相当于是 int (*p)[4];int *q[3]={b[0],b[1],b[2]};他这里的q[3]直接就存为int*的类型,按照上面的说法,q应该是个存放数组指针的数组,类型应该是int (*q[3])[4];但这个题比较坑,对于 int *q[3]={b[0],b[1],b[2]};q就是这个数组首元素的地址,首元素里面的存的是个int*类型,其实q的类型就是int**了。