作用:给变量起别名
语法:数据类型 & 别名=原名
示例:
int a = 10;int & b = a;cout <<"b= "<< b << endl;b = 20;cout << "a = " << a << endl;'''输出''b= 1a = 20
作用:函数传参时,可以利用引用的技术让形参修饰实参
优点:简化指针修改实参
using namespace std;
// 交换函数// 1、值传递
void mySwap01(int a, int b)
{int tamp;tamp = a;a = b;b = tamp;cout << "mySwap01—a= " << a << endl;cout << "mySwap01—b= " << b << endl;
}//2、地址传递void mySwap02(int *a, int *b)
{int tamp;tamp = *a;*a = *b;*b = tamp;
}//3、引用传递
void mySwap03(int &bei_a, int &bei_b)
{int tamp;tamp = bei_a;bei_a = bei_b;bei_b = tamp;cout << "bei_a=" << bei_a << endl;
}
int main()
{system("color 1E");int a = 10;int b = 20;//mySwap01(a, b); //值传递,形参不会影响实参//mySwap02(&a, &b); //地址传递,形参会修改实参的值mySwap03(a, b); //引用传递,形参也会修饰实参cout << "a= " << a << endl;cout << "b= " << b << endl;return 0;
}
所有的指针操作都有编译器执行
system("color 1E");int a = 10;int & ref = a;cout << "a = " << a << endl;ref = 20;cout << "a = " << a << endl;cout << "ref = " << ref << endl;
作用:修饰形参,防止误操作
void showValue(const int &val)
{//val = 1000;//在打印的函数修改数据,则原a的值也修改了 /*在函数上加const,则不能修改 */cout << " val = " << val << endl;
}
int main()
{system("color 1E");//防止误操作int a = 10;//const:编译器将代码修改临时的值,int temp=10;const int & ref=temp ->const & ref=10;加入const只能读,不能修改showValue(a);system("pause"); return 0;
}
函数的形参列表的形参是可以有默认值的。
语法:返回值类型 函数名 (参数=默认值){ }
注意:
//函数的默认参数
//如果我们自己传入数据,就用自己的数据,如果没有,就用默认值
//返回值类型 函数名 (参数=默认值){ }
int func(int a, int b=20, int c=30)
{return a + b + c;
}
int main()
{system("color 1E");cout << "a+b+c = " << func(10,30) << endl;system("pause"); return 0;
}
作用:形参列表可以有占位参数,用来做占位,调用函数时必须填补该位置
语法:返回值类型 函数名 (数据类型){ } --------》现阶段了解
//函数的占位参数//返回值类型 函数名 (数据类型){ }
void func(int a ,int)
{cout << "this is func" << endl;
}
int main()
{system("color 1E");func(10,2);system("pause"); return 0;
}
作用:函数名可以相同,提高复用性
函数重载满足条件:
注意:
函数的返回值类型(void\int)不可以作为函数重载的条件
void func()
{cout << "func的调用" << endl;
}
void func(int a)
{cout << "func的调用—int" << endl;
}
void func(double a)
{cout << "func的调用—double" << endl;
}
int main()
{system("color 1E");func(0.2);func();func(2); system("pause"); return 0;
}