C++和C语言函数调用(想通过参数来回传值,而不是通过函数返回值的方法)是有点区别的。
拿出经典例子:
//函数
void swap(int a, int b){
int temp;
temp = a;
a = b;
b = temp;
}
//调用
swap(a, b); //是没用的
大家都知道这样调用是没有效果的,那如果是C语言会怎么处理呢?
//C语言的处理方法(C语言要想让参数传值,必须使用指针调用)
void swap(int *a, int *b){
int temp;
temp = *a;
*a = *b;
*b = temp;
}
//调用
swap(&a, &b);//是可以的
C语言函数参数是不能传回来值的,所以一般要想让参数回传值,必须使用指针。
但如果是C++则可采用这种方式:
//C++的处理方法(C语言没有次方法,所以C++可以让参数通过引用调用来传值)
void swap(int &a, int &b){
int temp;
temp = a;
a = b;
b = temp;
}
//调用
swap(a, b); //是可以的
这种方式叫做引用调用。
所以说C语言就根本没有引用调用的方法。