都是交换两个数的实现:
1.指针版交换两个数
#include<iostream>
using namespace std;
void swap(int *a,int *b)
{
int t=*a;
*a=*b;
*b=t;
}
int main()
{
int a=3,b=4;
swap(&a,&b);
cout<<"a:"<<a<<" "<<"b:"<<b<<endl;
return 0;
}
这个不能用t来接受(因为t是一个整数),或者a=b哦
2.引用版交换两个数
#include<iostream>
using namespace std;
void swap(int &a,int &b)
{
int t=a;
a=b;
b=t;
}
int main()
{
int a=3,b=4;
swap(a,b);
cout<<"a:"<<a<<" "<<"b:"<<b<<endl;
return 0;
}
引用的话,直接swap(a,b)就好,不要swap(&a,&b);
其实不用写void swap()这个函数也是可以的,因为C++这个#include< iostream>头文件已经内置这个函数了
3.指针版求和
#include<iostream>
using namespace std;
int sum1(int *begin, int *end)
{
int ans = 0;
for (int *p=begin; p!=end; p++)
{
ans += *p;
}
return ans;
}
int main()
{
int a[] = { 1,2,3,4,5 };
cout << sum1(a+1, a + 3)<<endl;
system("pause");
return 0;
}
输出:5