为什么我有一个像这样交换两个数字的函数时,它不起作用[swap],(我知道通过在原型中声明指针,然后在主函数中传递相应变量的地址可以实现,但是看到对数组时不需要传递指针或地址就可以工作)。
不起作用
void num_exchange(int m, int n);
int main(){
int num1 = 5;
int num2 = 6;
num_exchange(num1 , num2 );
cout << "num1 =" << num1 << endl;
cout << "num2 =" << num2 << endl;
return 0;
}
void num_exchange(int m, int n){
int temp;
temp = m;
m = n;
n = temp;
}
工作
void arr_exchange(int [], int);
int main(){
int n[7] = { 0, 0, 0, 0, 0, 0, 0 };
arr_exchange(n, 7);
for (int i = 0; i < 7; i++)
cout << n[i] << " ";
return 0;
}
void arr_exchange(int x[], int){
for (int i = 0; i < 7; i++)
x[i] = 1;
}
template <std::size_t N> void fun (int (&a)[N]) {
。在这里,既不传递指针也不传递指针的引用,你可以在函数中像使用真正的数组一样使用a
(在某种意义上比指针更好)。 - Baum mit Augen