通过指针输出一位数组,求解这是哪里错了,为什么运行不出来

xgsdatmlkp 2014-09-13 07:52:59
这是代码:
#include"stdio.h"
void zhizhen(int*p,int len)
{
int i;
for(i=0;i<len;i++)
{
printf("%d",*(p+1));
}
printf("\n");
}
int main(void)
{
int a[5]={12,3,41,231,44};
zhizhen(a,5);
return 0;
}
...全文
143 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
赵4老师 2014-09-15
  • 打赏
  • 举报
回复
代码功能归根结底不是别人帮自己看或讲解或注释出来的;而是被自己静下心来花足够长的时间和精力亲自动手单步或设断点或对执行到某步获得的中间结果显示或写到日志文件中一步一步分析出来的。 提醒:再牛×的老师也无法代替学生自己领悟和上厕所! 单步调试和设断点调试(VS IDE中编译连接通过以后,按F10或F11键单步执行,按Shift+F11退出当前函数;在某行按F9设断点后按F5执行停在该断点处。)是程序员必须掌握的技能之一。
Morrisss_ 2014-09-13
  • 打赏
  • 举报
回复
*(p+1)中,p+1仅仅得到一个临时的指针对象而已,并没有使p指向后移。
默伊清风 2014-09-13
  • 打赏
  • 举报
回复
#include"stdio.h"
void zhizhen(int*p,int len)
{
    int i;
    for(i=0;i<len;i++)
    {
        printf("%d ",*(p+i));
    }
    printf("\n");
}
int main(void)
{
    int a[5]={12,3,41,231,44};
    zhizhen(a,5);
    return 0;
}
Evhung 2014-09-13
  • 打赏
  • 举报
回复
printf("%d",*(p+1)); 最后打印有问题,别人都说了
mygame_ 2014-09-13
  • 打赏
  • 举报
回复

void point(int *p,int len)
{
int i=0;
for(i;i<len;i++)
printf("%d",*p++);
}

Kenney_Qin 2014-09-13
  • 打赏
  • 举报
回复
你的指针p在每次循环之后没有指下一个元素啊,改成这样就好了:
#include"stdio.h"
void zhizhen(int*p,int len)
{
    int i;
    for(i=0;i<len;i++)
    {
        printf("%d ",*(p++));
    }
    printf("\n");
}
int main(void)
{
    int a[5]={12,3,41,231,44};
    zhizhen(a,5);
    return 0;
}
晨星 2014-09-13
  • 打赏
  • 举报
回复
难道不应该是 printf("%d",*p); 么?

70,020

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧