关于二级指针和二维数组的问题 15

#include<stdio.h>#defineROWS3#defineCOLS4intsumrows(int**,int,int);intmain(){intar[RO... #include<stdio.h>
#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));
}
}
}
这是为什么?
展开
 我来答
王爱飞waffaw
2011-04-06 · TA获得超过317个赞
知道小有建树答主
回答量:353
采纳率:0%
帮助的人:217万
展开全部
不知道你是使用什么编译器编译的(VC吗),我使用mingw32-g++编译是正常的输出啊
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式