解析C程序设计书204页代码错误的理解看对吗?

黄哥Python培训 2011-01-26 10:32:58
解析C程序设计书204页代码错误的理解看对吗?
请看//那里的文字。

#include <stdio.h>
#define SIZE 20
int findposition(int array[],int n,int data);
int insert(int array[],int n,int data,int pos);
void main()
{
int a[SIZE]={0},d,n,*p;



printf("input array length\n");
scanf("%d",&n);


printf("\ninput array %d element\n",n);

for (p=a;p<(a+n);p++)
{
scanf("%d",p);

}


printf("\nbefore insert:\n");
//for (p=a;i<(p+n);p++) 解析C程序设计书204页代码 i明显错误
//for (p=a;p<(p+n);p++) 改为指针p小于 P<(p+n)也能编译通过,运行是就
//错误,我是这样理解的,看对不对。P+n随着指针的移动,应该修改为固定的地址a+n


for (p=a;p<(a+n);p++)
{
printf("%d\t",*p);
}

printf("\ninput insert data:\n");

scanf("%d",&d);


n=insert(a,n,d,findposition(a,n,d));
printf("\nafther insert %d:\n",d);
for (p=a;p<(a+n);p++)
printf("%d\t",*p);
}
int findposition(int *p,int n,int data){
int i;
for(i=0;(i<n)&&(data>*p);i++,p++)
{ ;}
return i;


}
int insert(int *p,int n,int data,int pos){
int i;
for (i=n-1;i>=pos;i--)
{
*(p+i+1)=*(p+i);
}
*(p+pos)=data;
return n+1;

}
...全文
160 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
黄哥Python培训 2011-01-26
  • 打赏
  • 举报
回复
for (p=a;i<(p+n);p++); 解析C程序设计书204页代码 i明显错误
以上是原书的代码

改为for (p=a;p<(p+n);p++); 改为指针p小于 P<(p+n)也能编译通过,运行是就
错误,

修改为for (p=a;p<(a+n);p++);
才对

我是这样理解的,看对不对。P+n随着指针的移动,应该修改为固定的地址a+n
justkk 2011-01-26
  • 打赏
  • 举报
回复
for (p=a;p<(a+n);p++)
lz的代码是对的
黄哥Python培训 2011-01-26
  • 打赏
  • 举报
回复
上学不认真学,再补功课阿。
还在上学的朋友需要好好珍惜阿。
barech 2011-01-26
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 xuxi_php 的回复:]

for (p=a;i<(p+n);p++); 解析C程序设计书204页代码 i明显错误
以上是原书的代码

 改为for (p=a;p<(p+n);p++); 改为指针p小于 P<(p+n)也能编译通过,运行是就
 错误,

修改为for (p=a;p<(a+n);p++);
才对

我是这样理解的,看对不对。P+n随着指针的移动,应该修改为固定的地址a+n
[/Quote]

没错,lz学的很认真,顶一下。

70,023

社区成员

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

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