以下程序的输出是什么?
void swap(int a, int b);
int main()
{
int a = 5;
int b = 6;
swap(a,b);
printf("%d-%d\n", a, b);
return 0;
}
void swap(int a, int b)
{
int t = a;
a = b;
b = t;
}
正确答案应当是5-6
楼主不明白为何调用swap函数后ab的值仍没有发生改变?
因为你void swap(int a, int b) 定义时少了引用 & ,所以相当于只是对a,b的副本进行交换,这不会影响到a,b本身
该回答引用ChatGPT
因为 swap 函数中 a 和 b 的值在 main 函数和 swap 函数中是不同的两个变量,所以将 a 和 b 的值交换在 swap 函数中是不会影响到 main 函数中 a 和 b 的值的。