c++中,下程序为什么只循环了一次,输出的是4 5 9 12 14,需要详细解答

#include<iostream.h>intx[]={5,4,3,2,1};intmain(){inti,*p,m=0;for(p=x,i=1;p+i<=x+4;i++... #include <iostream.h>
int x[]={5,4,3,2,1};
int main()
{
int i,*p,m=0;
for (p=x,i=1;p+i<=x+4;i++)
{
cout<<*(p+1);
for (i=0;i<4;i++)
{
m+=p[i];
cout<<"\t"<<m;
}
}
return 0;
}
cout<<*(p+1);这句打错了,是cout<<*(p+i);
展开
 我来答
bnulzm
2014-09-20 · TA获得超过264个赞
知道小有建树答主
回答量:190
采纳率:100%
帮助的人:199万
展开全部
两个循环都是用的变量 i 作为循环的条件参数
第二个循环导致运行完了之后 i 就等于5了, 第一个循环也就结束了

还有 cout << *(p+1); 肯定每次都输出4的
追问
那第二个循环的i的作用域不是只在for循环当中吗?跳出第二个循环的话进行第一个for语句的i不是用回i=2吗?还是不明白
追答
你看你的 变量i的定义是在循环最外面,也就是说,两个循环同时受一个i影响。也就是第二个循环回来,第一个循环也变了
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式