#include<iostream.h>
#include<conio.h>
void main()
{
int x[5] = {1,2,3,4,5}, y[5]={5,4,3,2,1}, res[5]={0,0,0,0,0};
int i=0,j=0;
while(i++<5)
{
res[i] = x[i]-y[i];
}
clrscr();
cout<<"Content\n";
i=0;
do
{
cout<<x[i]<<"\t"<<y[i]<<"\t"<<res[i]<<"\n";
i++;
}while(i<5);
getch();
}
输出: Click & View the Ouput of the above code
在第一行的输出中为什么y [0]显示-1而不是5?
答案 0 :(得分:2)
首先在这个while循环中:
while(i++<5)
{
res[i] = x[i]-y[i];
}
i
将从1开始,因为该条件具有后增量的副作用。因此,您永远不会更改res[0]
,这就是您在打印0
时看到res[0]
的原因。关于y[0]
的值,while循环将一直运行到i
为5.所以最后你有类似的东西:
res[5] = x[5] - y[5];
写入res[5]
正在破坏位置y[0]
。