为啥报错阿

#include<stdio.h>
//用指向数组元素的指针变量输出二维数组各元素的值
int mian()
{
int a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};
int *p;
p=a[0];
for(;p<a[0]+12;p++)
{
printf("%d\t",*p);
}
return 0;
}
为啥报错阿

#include<stdio.h>
//用指向数组元素的指针变量输出二维数组各元素的值
int mian()
{
int a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};
int *p;
p=a[0];
for(;p<a[0]+12;p++)
{
printf("%d\t",*p);
}
return 0;
}
1.主函数名应该是main
2.数组a的声明应该放在main函数的内部,而不是放在所有函数的外部。
3.循环的终止条件应该是p<a[3],而不是p<a[0]+12,因为二维数组可以看作是一个包含多个一维数组的数组,所以总共的元素数目是3*4=12,因此循环应该遍历到最后一个元素。
以下是修改后的代码:
#include<stdio.h>
int main()
{
int a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};
int *p;
p=a[0];
for(;p<a[3];p++)
{
printf("%d\t",*p);
}
return 0;
}
这段代码将会输出二维数组a的所有元素值。