为啥报错呀,求解,本人刚接触c语言不久,刚开始接触指针还不是很懂,这是对着书上敲的
p 是 一维指针 int *; 而 a是二维数组,相当于 int **; 这两者类型不匹配
int **p = a; // 这样就可以了
int main()
{
int a[3][3]={{122,1213, 33124},{111,444, 5555},{2434,5,000}};
int *p=NULL;
int i;
for(p=a,i=0;i<9;i++) {
if(i%3==0) {
printf("\n");
}
printf("%5d",*(p+i));
}
printf("\n");
return 0;
}
改成上面的代码试试:
运行结果如下:
int main()
{
int a[3][3]={{122,1203,33124},{111,444,000},{24340,01,001}};
int *p=NULL;
for(p=a[0];p<a[0]+9;p++)
{
if((p-a[0])%3==0)
{
printf("\n");
}
printf("%6d",*p);
}
return 0;
}
不知道你这个问题是否已经解决, 如果还没有解决的话: