数组指针(也称行指针)定义 int (*p)[n];
float w[3][2]= {1.6,2.7,3.5,7.1,81.1,9.1};
float (*tt)[2]=w;
for(int i=0; i<3; ++i)
{
for(int j=0; j<2; j++)
{
cout<<*tt[j]<<"****";
}
++tt;
}
本来按道理应该是逐行输出为1.6,2.7,3.5,7.1,81.1,9.1才对(忘了在++t后加换行了),然而输出的是
若有大神看到本备忘录请解答一下。
So,用了另一种方法,在数组指针的基础上,打印二维数组
参考了https://blog.csdn.net/u013752202/article/details/49688717
void sz(void **tab,int rows,int cols)//二维数组的长和宽可以随意,而且同一个函数可以接收不同类型的数组
{
for(int i=0; i<rows; i++)
{
for(int j=0; j<cols; j++)
{
cout<<*((float*)tab+i*cols+j)<<" ";
}
cout<<endl;
}
}
float w[2][3]= {1.6,2.7,3.5,7.1,81.1,9.1};
float (*tt)[3]=w;
sz((void**)tt,2,3);//或者 sz((void**)w,2,3)但不能直接sz(w,2,3);?
数组形参int a[]等价int*a;在函数内一样是代表指针,因此在函数内用sizeof(a)的时候这是指针大小而不是数组大小
void test(int a[])//等同于int*a