新手求教

DK_dangyl 2018-07-24 03:10:27
请教各位,下边的代码错在哪里? #include"stdio.h"
int main(){
int *p,i,a[10];
p=a;
for(i=0;i<10;i++)
*p++=i;
for(i=0;i<10;i++)
printf("a[%d]=%d\n",i,*p++);
return 0;
}
...全文
155 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
DK_dangyl 2018-07-25
  • 打赏
  • 举报
回复
引用 1 楼 yakeMili的回复:
指针输出的时候没有归位啊,还指着a【10】呢
多谢指教,多谢,多谢!
DK_dangyl 2018-07-25
  • 打赏
  • 举报
回复
引用 5 楼 kevinlee_grg的回复:
如果是最开始学,最好还是一步步写代码,也好跟代码。不要写的++还要*,多打点括号,自己都能看的清楚些。
多谢指教,新手开始写代码,应该养成好习惯
DK_dangyl 2018-07-25
  • 打赏
  • 举报
回复
引用 4 楼 sghcpt的回复:
[quote=引用 3 楼 DK_dangyl 的回复:]
[quote=引用 2 楼 自信男孩的回复:]
#include"stdio.h"
int main(){
int *p,i,a[10];
p=a;
for(i=0;i<10;i++)
*p++=i;
p=a; //修改一下p的指向,否则会越界访问
for(i=0;i<10;i++)
printf("a[%d]=%d\n",i,*p++);
return 0;
}


加一条语句即可,如上

前边不是有了p=a吗?还有越界访问是什么意思?新手,多谢指教[/quote]
楼主,下面的代码,已经改变p的指向的地址了,*p++= i;赋值完p自加,所以需要重新加 p=a 一条语句。
for(i=0;i<10;i++)
*p++=i;


[/quote] 谢谢指教,这下搞明白了
kevinlee_grg 2018-07-25
  • 打赏
  • 举报
回复
如果是最开始学,最好还是一步步写代码,也好跟代码。不要写的++还要*,多打点括号,自己都能看的清楚些。
sghcpt 2018-07-25
  • 打赏
  • 举报
回复
引用 3 楼 DK_dangyl 的回复:
[quote=引用 2 楼 自信男孩的回复:]
#include"stdio.h"
int main(){
int *p,i,a[10];
p=a;
for(i=0;i<10;i++)
*p++=i;
p=a; //修改一下p的指向,否则会越界访问
for(i=0;i<10;i++)
printf("a[%d]=%d\n",i,*p++);
return 0;
}


加一条语句即可,如上

前边不是有了p=a吗?还有越界访问是什么意思?新手,多谢指教[/quote]
楼主,下面的代码,已经改变p的指向的地址了,*p++= i;赋值完p自加,所以需要重新加 p=a 一条语句。
for(i=0;i<10;i++)
*p++=i;


DK_dangyl 2018-07-24
  • 打赏
  • 举报
回复
引用 2 楼 自信男孩的回复:
#include"stdio.h"
int main(){
int *p,i,a[10];
p=a;
for(i=0;i<10;i++)
*p++=i;
p=a; //修改一下p的指向,否则会越界访问
for(i=0;i<10;i++)
printf("a[%d]=%d\n",i,*p++);
return 0;
}


加一条语句即可,如上
前边不是有了p=a吗?还有越界访问是什么意思?新手,多谢指教
自信男孩 2018-07-24
  • 打赏
  • 举报
回复
#include"stdio.h"
int main(){
int *p,i,a[10];
p=a;
for(i=0;i<10;i++)
*p++=i;
p=a; //修改一下p的指向,否则会越界访问
for(i=0;i<10;i++)
printf("a[%d]=%d\n",i,*p++);
return 0;
}


加一条语句即可,如上
yakeMili 2018-07-24
  • 打赏
  • 举报
回复
指针输出的时候没有归位啊,还指着a【10】呢

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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