C++ 函数中的符号
C++ ampersand in function
我想知道这些函数的定义是相等的,即没有区别?
void fun1(int **X){....}
void fun2(int **&X){....}
int main(){
.....
fun1(Array);
fun2(Array);
.....
}
还是有变化?
定义明显不同,功能上的差异将在很大程度上取决于功能的实现方式。将参数传递给 fun2
然后在函数体内写入参数将写入引用的内存位置,而将相同的参数传递给 fun1
并在函数体内写入它将保持原始参数不变,因为传递的参数只是在不同内存位置的副本。
我想知道这些函数的定义是相等的,即没有区别?
void fun1(int **X){....}
void fun2(int **&X){....}
int main(){
.....
fun1(Array);
fun2(Array);
.....
}
还是有变化?
定义明显不同,功能上的差异将在很大程度上取决于功能的实现方式。将参数传递给 fun2
然后在函数体内写入参数将写入引用的内存位置,而将相同的参数传递给 fun1
并在函数体内写入它将保持原始参数不变,因为传递的参数只是在不同内存位置的副本。