数组形参的改变会影响实参的改变。Swap(a,b)改变的只是形参的值,是实参拷贝过去的值,并不影响实参的改变。
#include<iostream>
using namespace std;
int a1[4] = {4, 5, 6, 9};
int a2[] = {3, 18, 56, 40, 78};
int FindMax(int a[], int length)
{
int maxn;
for(int i = 0; i < length; ++i)
{
if(a[i] > maxn)
maxn = a[i];
}
return maxn;
}
int main()
{
cout << FindMax(a1,sizeof(a1)/sizeof(int)) << endl;//9 length = sizeof(a1)/sizeof(int)=4
cout << FindMax(a2,sizeof(a2)/sizeof(int)) << endl;//78
return 0;
}
#include<iostream>
using namespace std;
int a1[4] = {4, 15, 6, 9};
void SetToZero(int a[], int length)//没有返回值
{
for(int i = 0; i < length; ++i)
{
a[i] = 0;
}
}
int main()
{
SetToZero(a1, 4);
for(int i = 0; i < 4; ++i)// 数组形参的值会影响实参,所以a1数组的所有元素值都为0
{
cout << a1[i] << " ";
}
return 0;
}