一段c++代码

来源:百度知道 编辑:UC知道 时间:2024/07/07 22:11:11
# include <iostream.h>
void f4(int a[], int n, int& s)
{
s=0;
for(int i=0; i<n; i+=2) s+=a[i];
}

void main()
{
int a[5]={2,7,5,4,9};
int b[10]={4,8,6,9,2,10,7,12,5.15};
int x;
f4(a,5,x);
int y=x;
f4(b,8,x);
y+=x;
f4(b+2,5,x);
cout<<x+y<<endl;
}
帮我解释这段代码为什么等于50,谢谢了
麻烦解释16怎么得来的。就一个,谢谢了

# include <iostream.h>
void f4(int a[], int n, int& s)
{
s=0;
for(int i=0; i<n; i+=2) s+=a[i];
}

void main()
{
int a[5]={2,7,5,4,9};
int b[10]={4,8,6,9,2,10,7,12,5,15};
int x;
f4(a,5,x);
cout<<x<<endl;
int y=x;
cout<<"x:"<<x<<" y:"<<y<<endl;
f4(b,8,x);
y+=x;
cout<<"x:"<<x<<" y:"<<y<<endl;
f4(b+2,5,x);
cout<<"x:"<<x<<" y:"<<y<<endl;
cout<<x+y<<endl;
}

输出为:
16
x:16 y:16
x:19 y:35
x:15 y:35
50

第一个f4将x的值令为16
第二个f4将x的值令为19
第三个f4将x的值令为15
所以最后加起来就是50了