赖世纲酒官网:这个程序为什么会输出垃圾数据?求知。

来源:百度文库 编辑:查人人中国名人网 时间:2024/04/29 22:43:35
不知道为什么,会输入垃圾数据。
这个程序本应该输出“1 2 3 11 22 33”的啦?
main()
{
int a[2][3]={{1,2,3},{11,22,33}};
int *p;
p=a;
while(*p!=NULL) printf("%d\t",*(p++));
}

不能用*p!=NULL来做条件吧,程序只是声明了一个2维整型数组而已,又不是字符串,哪来的NULL

main()
{
int a[2][3]={{1,2,3},{11,22,33}};
int *p;
for(p=a[0];p<a[1]+3;p++)
printf("%d\t",*p);
}


因为a是一个二维数组名,其类型是int **而不是int *因此会出错,楼上给出了一种完善方法。

楼上说得很对,其实你也可以只做一点小改动

main()
{
    int a[2][3]={{1,2,3},{11,22,33}};
    int *p;
    p= a[0];
    while(*p!=NULL) printf("%d\t",*(p++));
}