c++中函数传递方式一般为能够让主调函数改变传递值,选择函数传递指针或者引用两种方式,针对形参的传递两种方式,他们有区别的
形参指针的传递会单独开辟内存单元来存储地址,而形参为引用则不会,引用就是变量的别名,她是和变量共享存储单元的,所以不会独占内存单元(个人建议选择引用作为形参常用);具体看两个函数:
//形参是指针变量
void swap(int *a,int *b){
int temp;
temp=*a;
*a=*b;
*b=temp;
}
//形参引用
void swap(int &a,int &b){
int temp;
temp=a;
a=b;
b=temp;
}
第一个函数形参为指针,使用swap(&c,&d);将实参的地址传输给指针变量,即是*a,*b和c,d变量对应同一内存单元;
第二个函数形参为引用,上面也提到引用实质就是变量的别名,所以直接这样干swap(c,d);传递变量名就可以了;ps:函数二形参是引用,不是取地址