简单的指针问题

来源:百度知道 编辑:UC知道 时间:2024/06/11 07:15:48
main()
{
int a[10];
int *p,i;
for(i=0;i <10;i++)
scanf("%d",&a[i]);
printf("\n");
for(p=a;p <(a+10);p++)
printf("%d ",*p);
}

中的
for(p=a;p <(a+10);p++)
能否替换为
for(p=&a[0];p <&a[10];(&a[i])++) ((&a[i])++)有可能写错了,见谅)
大家帮忙看看
问题补充:第二 for(p=a;p <(a+10);p++)
能否替换为
for(p=a;p <(a+10);a++)

楼下的 我如果都懂的话就不用问了

不可以嘛 不知理解你的意思对不对 是这样的
for(p=a;p <(a+10);a++) 这个循环中,只在进入的时候执行一次p=a

后面你只变化a++ p是仍然不变的,所以中间那个判断就永远不会为假了。

你的意思就是 进入循环后 每执行一遍是不是(p=a;p <(a+10);a++) 括号里的语句也都执行一边 对吧?? 不是的 p=a这个语句位置是初始状态 一进入执行 以后就不执行了

什么破程序?不能运行吧?都错了@

理解你的意思,一样的,但是没这个必要啊。程序要简练。

不能,有两处错误:
第一:p<(a+10)永远成立,为死循环
第二:a是数组,不能使用 ++ 操作,因为 a++ 等价于 a = a+1;