一:
- C++函数的形式参数被定义为引用类型,则称为引用参数。
- 变量是可以保存数据的内存位置的名称。当使用变量时,实际上就是访问存储在分配给它的内存位置的数据。
- 引用变量是变量的另一个别名,它没有自己的存储数据的内存位置,它访问的是另一个变量的内存位置。对引用变量作出的更改,实际上都是对它所引用的变量内存位置中存储数据的更改。
- 当使用引用变量作为形参时,它将变为实参列表中相应变量的别名,对形参进行的任何更改都将真正更改正在调用它的函数中的变量。当以这种方式将数据传递给形参时,该实参被称为按引用传递
- 对形参值进行的任何更改都不会影响原始实参的值。
注意:1.引用要在定义时初始化且不可重新赋值
2.可以有空指针,但不可以有空引用
二:
1、编写一个函数,用于两个整数的交换,并在主程序中测试之。
#include<iostream>
using namespace std;
void exchange(int x,int y)
{
int t;t=x;x=y;y=t;
}
void main(){
int x,y;
cout<<"交换前:x=";
cin>>x;
cout<<"y=";
cin>>y;
exchange(x,y);
cout<<"交换后:"<<"x="<<x<<" y="<<y<<endl;
}
交换前:x=3 y=5
交换后:x=3 y=5
修改以上程序,使用指针做参数,使其真正实现两个数的交换
#include<iostream>
using namespace std;
void exchange(int *pa, int *pb){
int t;
t=*pa;
*pa=*pb;
*pb=t;
}
void main(){
int x,y;
cout<<"交换前:x=";
cin>>x; cout<<"y=";
cin>>y;
exchange(&x,&y);
cout<<"交换后:"<<"x="<<x<<" y="<<y<<endl;
}
交换前:x=3 y=6
交换后:x=6 y=3
修改以上程序,使用引用做参数,使其真正实现两个数的交换
#include<iostream>
using namespace std;
void exchange(int &a, int &b){
int t;
t=a;
a=b;
b=t;
void main(){
int x,y;
cout<<"交换前:x=";
cin>>x;
cout<<"y=";
cin>>y;
exchange(x,y);
cout<<"交换后:"<<"x="<<x<<" y="<<y<<endl;
}
交换前:x=5 y=7
交换后:x=7 y=5
2、不使用函数,在主程序中实现动态数组分配和输出功能
#include<iostream>
using namespace std;
void main(){
int n;
int *p=0;
cout<<"please input the length of the array:"