[每日一问]:指针小问题
#include<stdio.h>void main()
{
int i=0,j=0,a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};
int *p;
for(p=a[0];p<a[0]+12;p++)
{
printf("%d ",*p);
}
printf("\n");
}
疑惑:其中指针变量p,p=a[0]。为什么写成P=a,或a[0][0]不行?
而下面这个程序:
#include<stdio.h>
void main()
{
int i,j,a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};
int (*p)[4];
p=a;//或者p=[0];
scanf("%d %d",&i,&j);
printf("%2d \n",*(*(p+i)+j));
}
其中:p=a或者p=a[0] 又都可以。请解释下这两个程序指针定义的区别