解释以下输出如何用于C ++中的代码

时间:2016-09-23 06:49:34

标签: c++

#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?

1 个答案:

答案 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]