关于指针的问题
输出二维数组任一行任一列元素的值下面的程序是对的
main()
{
int a[3][4]={1,3,5,7,9,11,13,15,17,19,21,23};
int i,j;
scanf("i=%d,j=%d",&i,&j);
printf("a[%d,%d]=%d\n",i,j,*(*(a+i)+ j));
}
这个也是对的
main()
{
int a[3][4]={1,3,5,7,9,11,13,15,17,19,21,23};
int (*p)[4],i,j;
p=a;
scanf("i=%d,j=%d",&i,&j);
printf("a[%d,%d]=%d\n",i,j,*(*(p+i)+ j));
}
为什么改成下面的就不对了呢?这是什么原因呢?
main()
{
int a[3][4]={1,3,5,7,9,11,13,15,17,19,21,23};
int *p,i,j;
p=a;
scanf("i=%d,j=%d",&i,&j);
printf("a[%d,%d]=%d\n",i,j,*(*(p+i)+ j));
}