实参和形参的结合是从左至右的,因此,指定默认的参数必须放在形参列表的最右端:
如:
void f1( int a, int b = 5, int c ); // 错误;
void f2( int a, int b, int c = 5 ); // 正确;
注意:
1.
如果函数的定义在函数的调用之前,则应在函数定义中给出默认;
如果定义在调用之后,则必须在声明中给出默认,定义中可以不给出;
2.
一个函数不能既作为重载函数,又作为有默认参数的函数,否则在调用时可能分不清;
变量的引用 :reference
变量的引用又称为别名 alias,即为变量起另外一个名字,需要时可以方便、间接的引用;
如:
int a;
int &b = a; // & 不代表取地址;
这就声明了 b 是 a 的引用,即别名。 此后 a和 b表示同一个变量;
在引用时只有声明,没有定义,不单独分配空间,只声明它和原有变量的关系;
在声明一个变量的引用后,在本函数的执行期间,该引用不能再作为其他变量的别名;
如:
int a1,a2;
int &b = a1;
int &b = a2; // 错误;
1. 引用的简单使用:
int main()
{
int x;
int &a = x;
cin >> x;
cout << a << endl;
a = a*a; // 当 X的值变化时,a的值也发生变化;
cout << a << setw(5) << x << endl;
x = x/2;
cout << a << setw(5) <<x << endl;
return 0;
}
关于引用的说明:
1. 引用不是一个单独的数据类型,必须与另外的一个数据联系;声明的同时必须进行初始化;
如:
int &b = a; // 正确
int &b; // 错
float a;int &b = a; // 错
2. 引用和其所指带的变量共享同一个内存空间,而系统不为引用另外分配空间;
int main()
{
int a = 3;
int &b = a;
cout << &a << " " << &b << endl;
return 0;
}
3. 同一个变量可以有多个不同的别名:
如:
int a = 3;
int &b = a; // a 的别名;
int &c = b; // c 为 b 的别名,即 a的第二个别名;
4. 一个引用在初始化后,不可被重新声明为另一个变量的别名;
2. 将引用作为函数参数:
对于C语言中,函数传有两种情况:
1. 将变量名作为实参:
此时传递是单向的,形参的变化,并不回传给实参,所以实参的不发生变化;
因为在函数执行时,形参和实参不是同一个存储单元;
void swap(int a,int b)
{
int temp;
temp = a;
a = b;
b = temp;
}
int main()
{
int i,j;
cin >> i >> j;
swap(i,j);
cout << i << ',' << j << endl;
return 0;
}
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-61530-5.html
老旧个毛啊好歹伯克级比弯弯那点家当高到不知道那里去了