帮我看看错在哪里?

Tomorrow0 2003-08-19 03:59:24
#include <iostream.h>
void main()
{
int a[]={1,3,5,7,9};
int *p=&a[0];
while(p<p+sizeof(a)/sizeof(int))
{
cout<<*p++<<endl;
}
}

应该是依次输出数组对象a的每个元素的值,可我运行后输出的却是许多乱七八糟的
值,而且还会提示程序出错而自动关闭
...全文
92 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
Tomorrow0 2003-08-20
  • 打赏
  • 举报
回复
我明白了,照我的原来的是<两边都在变,多谢各位仁兄捧场:)
lovecreak 2003-08-19
  • 打赏
  • 举报
回复
int main()
{
int a[]={1,3,5,7,9};
int *p=a;
while(p-a<sizeof(a)/sizeof(int)){
cout<<*p++<<endl;
}
}
这样改也行吧
p<p+sizeof(a)/sizeof(int) 等同于 0<sizeof(a)/sizeof(int) 当然永远为真
jnqx 2003-08-19
  • 打赏
  • 举报
回复
while(p<p+sizeof(a)/sizeof(int))
{
cout<<*p++<<endl;
}
条件两边的p都会加1,所以永远是true!
lovecreak 2003-08-19
  • 打赏
  • 举报
回复
{
int a[]={1,3,5,7,9};
int *p=a;
while(p-a<sizeof(a)/sizeof(int))
{
cout<<*p++<<endl;
}
}

这样改也行吧
p<p+sizeof(a)/sizeof(int) 等同于 0<sizeof(a)/sizeof(int) 当然永远为真,就死循环了
Tomorrow0 2003-08-19
  • 打赏
  • 举报
回复
为什么要增加一个指针?
在while中P会自动增加,怎么还会永远为true?
cleanduo 2003-08-19
  • 打赏
  • 举报
回复
sizeof(a)/sizeof(int)=20/4=5,
while (p < p+ 5)
...
你这个程序何时退出阿???

#include <iostream.h>
void main()
{
int a[]={1,3,5,7,9};

for(int *p = a; p< a + sizeof(a)/sizeof(int) ; p++)
{
cout<< *p <<endl;
}

}
Tomorrow0 2003-08-19
  • 打赏
  • 举报
回复
我还是不太明白为什么会死循环?
aflyinghorse 2003-08-19
  • 打赏
  • 举报
回复
这样改
int a[]={1,3,5,7,9};
int *p=&a[0];
int * end = p+sizeof(a)/sizeof(int);
while(p<end)
{
cout<<*p++<<endl;
}
Jinhao 2003-08-19
  • 打赏
  • 举报
回复
因为p在改变
要这样

#include <iostream.h>
void main()
{
int a[]={1,3,5,7,9};
int *p=&a[0];
int i=sizeof(a)/sizeof(int);
while((--i)>=0)
{
cout<<*p++<<endl;
}
}
Cline 2003-08-19
  • 打赏
  • 举报
回复
int a[]={1,3,5,7,9};
int *p=&a[0];
int *pHead;
pHead=p;
while(p<pHead+sizeof(a)/sizeof(int))
{
cout<<*p++<<endl;
}
sevecol 2003-08-19
  • 打赏
  • 举报
回复
while(p<p+sizeof(a)/sizeof(int))
上面的表达式的值 在你的这种情况下永远等于true;

改成
int a[]={1,3,5,7,9};
int *p=&a[0];

int *p_end=p+sizeof(a)/sizeof(int);

while(p<p_end)
{
cout<<*p++<<endl;
}
Jinhao 2003-08-19
  • 打赏
  • 举报
回复
哇,一看就知道是个死循环
直到p指向一个它不给访问的内存,并以非法结束

69,371

社区成员

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

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