#include
#define ROWS 3
#define COLS 4
int sumrows(int **,int,int);
int main(){
int ar[ROWS][COLS]={
{5,6,7,8},
{1,2,3,4},
{10,2,4,2}
};
sumrows((int **) ar,ROWS,COLS);
printf("%p=========%p",ar,(int **)ar);
return 0;
}
void sumrows(int **ar,int rows,int cols){
int i,j,tal=0;
for(i=0;i<rows;i++){
for(j=0;j<cols;j++){
//正确
printf("%d\n",*((int *)ar+i*COLS+j));
//编译通过,访问报错
//printf("%d\n",*(*(ar+i)+j));
}
}
}
这是为什么?
|