1.调用函数的指针形参,指针不能改变,但指针所指向的值会改变。若不想指针所指向的值改变,则用const指针
如调用函数实现交换两个值:
方法一:利用指针形参
#include<iostream>
using namespace std;
void swap(int *a,int *b)
{
int temp = *a;
*a = *b;
*b = temp;
}
int main()
{
int a = 5,b = 6;
swap(a,b);
cout << a << endl
<< b << endl;
system("pause");
return 0;
}
方法二:利用引用形参
#include<iostream>
using namespace std;
void swap(int &a,int &b)
{
int temp = a;
a = b;
b = temp;
}
int main()
{
int a = 5,b = 6;
swap(a,b);
cout << a << endl
<< b << endl;
system("pause");
return 0;
}
2.函数返回多个返回值,可以多加一个引用形参,就可以搞定,解决了oj上总是统计次数的问题,当时还想着怎么才能返回多个返回值,需要用结构体什么的,看来还是看书看的不仔细。
#include<iostream>
using namespace std;
void swap(int &a,int &b,int &cnt)
{
int temp = a;
a = b;
b = temp;
cnt = 2;
}
int main()
{
int a = 5,b = 6,cnt = 0;
swap(a,b,cnt);
cout << a << endl
<< b << endl
<< cnt << endl;
system("pause");
return 0;
}
3 使用引用形参,函数可以直接访问实参对象,而无需复制,这样就可以避免复制很长的对象。
bool isShorter(const string &s1,const string &s2)
{
return s1.size() < s2.size();
}